Skip to content

Commit c3f181b

Browse files
committed
allow specifying parameter names in builtins
1 parent 1cb13da commit c3f181b

File tree

4 files changed

+8
-14
lines changed

4 files changed

+8
-14
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/Builtin.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,8 @@
5353

5454
boolean takesVarKeywordArgs() default false;
5555

56+
String[] parameterNames() default {};
57+
5658
String[] keywordArguments() default {};
5759

5860
boolean isPublic() default true;

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/PythonBuiltins.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ private static Arity createArity(Builtin builtin, boolean declaresExplicitSelf)
122122
maxNumPosArgs++;
123123
}
124124

125-
return new Arity(builtin.name(), minNumPosArgs, maxNumPosArgs, builtin.takesVarKeywordArgs(), builtin.takesVarArgs(), keywordNames);
125+
return new Arity(builtin.name(), minNumPosArgs, maxNumPosArgs, builtin.takesVarKeywordArgs(), builtin.takesVarArgs(), builtin.parameterNames(), keywordNames.toArray(new Arity.KeywordName[0]));
126126
}
127127

128128
private void setBuiltinFunction(String name, BoundBuiltinCallable<?> function) {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/code/PCode.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -432,7 +432,7 @@ private int getMaxNumOfPositionalArgs() {
432432
}
433433

434434
public Arity getArity() {
435-
return new Arity(this.getName(), this.getMinNumOfPositionalArgs(), this.getMaxNumOfPositionalArgs(), this.takesVarKeywordArgs(), this.takesVarArgs(), this.getKeywordNames());
435+
return new Arity(this.getName(), this.getMinNumOfPositionalArgs(), this.getMaxNumOfPositionalArgs(), this.takesVarKeywordArgs(), this.takesVarArgs(), null, this.getKeywordNames());
436436
}
437437

438438
public RootCallTarget getRootCallTarget() {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/function/Arity.java

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -52,18 +52,10 @@ public class Arity {
5252

5353
public Arity(String functionName, int minNumOfPositionalArgs, int maxNumOfPositionalArgs,
5454
boolean takesVarKeywordArgs, boolean takesVarArgs,
55-
KeywordName[] keywordNames) {
56-
this(functionName, minNumOfPositionalArgs, maxNumOfPositionalArgs,
57-
takesVarKeywordArgs, takesVarArgs, false,
58-
null, keywordNames);
59-
}
60-
61-
public Arity(String functionName, int minNumOfPositionalArgs, int maxNumOfPositionalArgs,
62-
boolean takesVarKeywordArgs, boolean takesVarArgs,
63-
List<KeywordName> keywordNames) {
55+
String[] parameterIds, KeywordName[] keywordNames) {
6456
this(functionName, minNumOfPositionalArgs, maxNumOfPositionalArgs,
6557
takesVarKeywordArgs, takesVarArgs, false,
66-
null, keywordNames);
58+
parameterIds, keywordNames);
6759
}
6860

6961
public Arity(String functionName, int minNumOfPositionalArgs, int maxNumOfPositionalArgs,
@@ -93,11 +85,11 @@ public Arity(String functionName, int minNumOfPositionalArgs, int maxNumOfPositi
9385
}
9486

9587
public static Arity createOneArgumentWithVarKwArgs(String functionName) {
96-
return new Arity(functionName, 1, 1, true, false, (KeywordName[]) null);
88+
return new Arity(functionName, 1, 1, true, false, null, null);
9789
}
9890

9991
public static Arity createVarArgsAndKwArgsOnly(String functionName) {
100-
return new Arity(functionName, 0, 0, true, true, (KeywordName[]) null);
92+
return new Arity(functionName, 0, 0, true, true, null, null);
10193
}
10294

10395
@TruffleBoundary

0 commit comments

Comments
 (0)