Use BuiltinFunction for all builtins
Replace the uses of AbstractFunction, MixedModeFunction,
SkylarkFunction and SimpleSkylarkFunction by BuiltinFunction.
--
MOS_MIGRATED_REVID=91763158
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
index cc14802..8ca1e9e 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/EvaluationTest.java
@@ -558,13 +558,13 @@
@Test
public void testDictKeysTooManyArgs() throws Exception {
- checkEvalError("Invalid number of arguments (expected 0)",
+ checkEvalError("too many (2) positional arguments in call to keys(self: dict)",
"{'a': 1}.keys('abc')");
}
@Test
public void testDictKeysTooManyKeyArgs() throws Exception {
- checkEvalError("Invalid number of arguments (expected 0)",
+ checkEvalError("unexpected keyword 'arg' in call to keys(self: dict)",
"{'a': 1}.keys(arg='abc')");
}
@@ -576,8 +576,8 @@
@Test
public void testArgBothPosKey() throws Exception {
- checkEvalError("replace(this, old, new, maxsplit = null) got multiple values "
- + "for keyword argument 'new'",
- "'banana'.replace('a', 'o', 3, new=4)");
+ checkEvalErrorStartsWith("arguments 'old', 'new' passed both by position and by name "
+ + "in call to replace(self: string, ",
+ "'banana'.replace('a', 'o', 3, old='a', new=4)");
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
index c7977e4..57371e8 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java
@@ -567,7 +567,8 @@
@Test
public void testStructPosArgs() throws Exception {
- checkEvalError("struct only supports keyword arguments", "x = struct(1, b = 2)\n");
+ checkEvalError("struct(**kwarg) does not accept positional arguments, but got 1",
+ "x = struct(1, b = 2)\n");
}
@Test
@@ -787,7 +788,9 @@
@Test
public void testPrintBadKwargs() throws Exception {
- checkEvalError("unexpected keywords: '[end, other]'", "print(end='x', other='y')");
+ checkEvalError(
+ "unexpected keywords 'end', 'other' in call to print(*args, sep: string = \" \")",
+ "print(end='x', other='y')");
}
@Test
diff --git a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkListTest.java b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkListTest.java
index 81029b1..2fb179e 100644
--- a/src/test/java/com/google/devtools/build/lib/syntax/SkylarkListTest.java
+++ b/src/test/java/com/google/devtools/build/lib/syntax/SkylarkListTest.java
@@ -51,12 +51,12 @@
@Test
public void testLazyListIndex() throws Exception {
- checkEvalError("Iterator requested", "a = lazy[0]");
+ checkEvalError("Illegal argument in call to $index: Iterator requested", "a = lazy[0]");
}
@Test
public void testLazyListSize() throws Exception {
- checkEvalError("Iterator requested", "a = len(lazy)");
+ checkEvalError("Illegal argument in call to len: Iterator requested", "a = len(lazy)");
}
@Test