diff --git a/graalpython/com.oracle.graal.python.test/src/tests/test_collections.py b/graalpython/com.oracle.graal.python.test/src/tests/test_collections.py index 6f88d69be8..5a14f4c133 100644 --- a/graalpython/com.oracle.graal.python.test/src/tests/test_collections.py +++ b/graalpython/com.oracle.graal.python.test/src/tests/test_collections.py @@ -1,4 +1,4 @@ -# Copyright (c) 2018, 2021, Oracle and/or its affiliates. All rights reserved. +# Copyright (c) 2018, 2026, Oracle and/or its affiliates. All rights reserved. # DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. # # The Universal Permissive License (UPL), Version 1.0 @@ -57,3 +57,13 @@ def test_import(): except ImportError: imported = False assert imported + + +def test_tuplegetter_arguments(): + from collections import _tuplegetter + assert_raises(TypeError, _tuplegetter) + assert_raises(TypeError, _tuplegetter, 0) + assert_raises(TypeError, _tuplegetter, 0, None, 1) + assert_raises(TypeError, _tuplegetter, 0, doc=None) + assert_raises(TypeError, _tuplegetter, index=0, doc=None) + assert _tuplegetter(1, 'doc').__get__((10, 20)) == 20 diff --git a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/tuple/TupleGetterBuiltins.java b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/tuple/TupleGetterBuiltins.java index 1962762fda..ea5ace648e 100644 --- a/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/tuple/TupleGetterBuiltins.java +++ b/graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/tuple/TupleGetterBuiltins.java @@ -1,5 +1,5 @@ /* - * Copyright (c) 2021, 2025, Oracle and/or its affiliates. All rights reserved. + * Copyright (c) 2021, 2026, Oracle and/or its affiliates. All rights reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * The Universal Permissive License (UPL), Version 1.0 @@ -95,7 +95,7 @@ protected List> getNodeFa } @Slot(value = SlotKind.tp_new, isComplex = true) - @SlotSignature(name = J_TUPLE_GETTER, parameterNames = {"cls", "index", "doc"}) + @SlotSignature(name = J_TUPLE_GETTER, minNumOfPositionalArgs = 3, numOfPositionalOnlyArgs = 3, parameterNames = {"cls", "index", "doc"}) @ArgumentClinic(name = "index", conversion = ArgumentClinic.ClinicConversion.Index) @GenerateNodeFactory public abstract static class TupleGetterNode extends PythonTernaryClinicBuiltinNode {