aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/test/java/com
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-06-28 10:12:05 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-06-28 10:13:26 -0700
commite661f88e58ab73e1f21f16531e8cc78ff7d2cad9 (patch)
treeddf209e5e2bc9a61277c38e2f8a15fafe49b1dd4 /src/test/java/com
parent178e6cc5dd31a8b9748f9263eea6bcba5f2c7f31 (diff)
Require @SkylarkCallable parameters to be explicitly specified.
This will be enforced by annotation processor. This will be followed up, along with turndown of mandatoryPositionals, by removing the intepreter code which infers the correct number and type of parameters. RELNOTES: None. PiperOrigin-RevId: 202499089
Diffstat (limited to 'src/test/java/com')
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/EnvironmentMissing.java10
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/GoldenCase.java19
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/LocationMissing.java8
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/SkylarkInfoBeforeParams.java6
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/SkylarkInfoParamsWrongOrder.java4
-rw-r--r--src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/StructFieldWithArguments.java7
-rw-r--r--src/test/java/com/google/devtools/build/lib/syntax/SkylarkEvaluationTest.java19
7 files changed, 56 insertions, 17 deletions
diff --git a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/EnvironmentMissing.java b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/EnvironmentMissing.java
index 405dc6dfb4..1a803714b9 100644
--- a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/EnvironmentMissing.java
+++ b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/EnvironmentMissing.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.skylarkinterface.processor.testsources;
+import com.google.devtools.build.lib.skylarkinterface.Param;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
/**
@@ -22,8 +23,13 @@ import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
*/
public class EnvironmentMissing {
- @SkylarkCallable(name = "three_arg_method_missing_env", documented = false, useEnvironment = true)
- public String threeArgMethod(String one, Integer two, String three) {
+ @SkylarkCallable(name = "three_arg_method_missing_env", documented = false,
+ parameters = {
+ @Param(name = "one", type = String.class, named = true),
+ @Param(name = "two", type = Integer.class, named = true),
+ },
+ useEnvironment = true)
+ public String threeArgMethod(String one, Integer two, String shouldBeEnv) {
return "bar";
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/GoldenCase.java b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/GoldenCase.java
index 6df1d649a9..579c7e2347 100644
--- a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/GoldenCase.java
+++ b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/GoldenCase.java
@@ -76,14 +76,15 @@ public class GoldenCase {
return 0;
}
- @SkylarkCallable(
- name = "three_arg_method",
- documented = false)
- public String threeArgMethod(String one, Integer two, String three) {
- return "bar";
- }
-
- @SkylarkCallable(name = "three_arg_method_with_ast", documented = false, useAst = true)
+ @SkylarkCallable(name = "three_arg_method_with_ast",
+ documented = false,
+ parameters = {
+ @Param(name = "one", type = String.class, named = true),
+ @Param(name = "two", type = Integer.class, named = true),
+ @Param(name = "three", type = String.class, named = true,
+ defaultValue = "None", noneable = true),
+ },
+ useAst = true)
public String threeArgMethod(String one, Integer two, String three, FuncallExpression ast) {
return "bar";
}
@@ -101,7 +102,7 @@ public class GoldenCase {
},
named = true, defaultValue = "None", noneable = true),
})
- public String threeArgMethodWithParams(String one, Integer two, Object three) {
+ public String threeArgMethod(String one, Integer two, Object three) {
return "baz";
}
diff --git a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/LocationMissing.java b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/LocationMissing.java
index ee92215d82..34ba818d59 100644
--- a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/LocationMissing.java
+++ b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/LocationMissing.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.skylarkinterface.processor.testsources;
+import com.google.devtools.build.lib.skylarkinterface.Param;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.syntax.Environment;
@@ -26,10 +27,15 @@ public class LocationMissing {
@SkylarkCallable(
name = "three_arg_method_missing_location",
documented = false,
+ parameters = {
+ @Param(name = "one", type = String.class, named = true),
+ @Param(name = "two", type = Integer.class, named = true),
+ },
useLocation = true,
useEnvironment = true
)
- public String threeArgMethod(String one, Integer two, String three, Environment environment) {
+ public String threeArgMethod(String one, Integer two, String shouldBeLoc,
+ Environment environment) {
return "bar";
}
}
diff --git a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/SkylarkInfoBeforeParams.java b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/SkylarkInfoBeforeParams.java
index 0f093d83eb..5f9bc3872d 100644
--- a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/SkylarkInfoBeforeParams.java
+++ b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/SkylarkInfoBeforeParams.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.skylarkinterface.processor.testsources;
import com.google.devtools.build.lib.events.Location;
+import com.google.devtools.build.lib.skylarkinterface.Param;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.syntax.Environment;
@@ -27,6 +28,11 @@ public class SkylarkInfoBeforeParams {
@SkylarkCallable(
name = "skylark_info_wrong_order",
documented = false,
+ parameters = {
+ @Param(name = "one", type = String.class, named = true),
+ @Param(name = "two", type = Integer.class, named = true),
+ @Param(name = "three", type = String.class, named = true)
+ },
useLocation = true,
useEnvironment = true
)
diff --git a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/SkylarkInfoParamsWrongOrder.java b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/SkylarkInfoParamsWrongOrder.java
index 56710113f7..1edf5e015d 100644
--- a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/SkylarkInfoParamsWrongOrder.java
+++ b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/SkylarkInfoParamsWrongOrder.java
@@ -15,6 +15,7 @@
package com.google.devtools.build.lib.skylarkinterface.processor.testsources;
import com.google.devtools.build.lib.events.Location;
+import com.google.devtools.build.lib.skylarkinterface.Param;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
import com.google.devtools.build.lib.syntax.Environment;
@@ -27,6 +28,9 @@ public class SkylarkInfoParamsWrongOrder {
@SkylarkCallable(
name = "skylark_info_params_wrong_order",
documented = false,
+ parameters = {
+ @Param(name = "some_param", type = String.class, named = true)
+ },
useLocation = true,
useEnvironment = true
)
diff --git a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/StructFieldWithArguments.java b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/StructFieldWithArguments.java
index c2124c01be..9ec6166081 100644
--- a/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/StructFieldWithArguments.java
+++ b/src/test/java/com/google/devtools/build/lib/skylarkinterface/processor/testsources/StructFieldWithArguments.java
@@ -14,6 +14,7 @@
package com.google.devtools.build.lib.skylarkinterface.processor.testsources;
+import com.google.devtools.build.lib.skylarkinterface.Param;
import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
/**
@@ -21,7 +22,11 @@ import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable;
*/
public class StructFieldWithArguments {
- @SkylarkCallable(name = "struct_field_method", structField = true, doc = "A private method")
+ @SkylarkCallable(name = "struct_field_method",
+ parameters = {
+ @Param(name = "foo", type = String.class, named = true),
+ },
+ structField = true, doc = "A private method")
public String structFieldMethod(String foo) {
return "puppy";
}
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 c31cd277b6..e70a9c5a6e 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
@@ -120,11 +120,15 @@ public class SkylarkEvaluationTest extends EvaluationTest {
return "I'm a mock named " + myName;
}
- @SkylarkCallable(name = "value_of", documented = false)
+ @SkylarkCallable(name = "value_of",
+ parameters = { @Param(name = "str", type = String.class) },
+ documented = false)
public static Integer valueOf(String str) {
return Integer.valueOf(str);
}
- @SkylarkCallable(name = "is_empty", documented = false)
+ @SkylarkCallable(name = "is_empty",
+ parameters = { @Param(name = "str", type = String.class) },
+ documented = false)
public Boolean isEmpty(String str) {
return str.isEmpty();
}
@@ -155,7 +159,12 @@ public class SkylarkEvaluationTest extends EvaluationTest {
return "a";
}
@SuppressWarnings("unused")
- @SkylarkCallable(name = "nullfunc_failing", documented = false, allowReturnNones = false)
+ @SkylarkCallable(name = "nullfunc_failing",
+ parameters = {
+ @Param(name = "p1", type = String.class),
+ @Param(name = "p2", type = Integer.class),
+ },
+ documented = false, allowReturnNones = false)
public SkylarkValue nullfuncFailing(String p1, Integer p2) {
return null;
}
@@ -482,7 +491,9 @@ public class SkylarkEvaluationTest extends EvaluationTest {
@SkylarkModule(name = "MockInterface", doc = "")
static interface MockInterface {
- @SkylarkCallable(name = "is_empty_interface", documented = false)
+ @SkylarkCallable(name = "is_empty_interface",
+ parameters = { @Param(name = "str", type = String.class) },
+ documented = false)
public Boolean isEmptyInterface(String str);
}