aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
diff options
context:
space:
mode:
authorGravatar cparsons <cparsons@google.com>2018-03-22 10:02:02 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-03-22 10:03:55 -0700
commit73e1016c72e5a73c7f204efe7a70b4c780be8674 (patch)
treedff662457bdbfd85b1b3b4a095e261c9f64e52f3 /src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
parent4c4e9e28950c64f697de08008d5049852ee83501 (diff)
Create useSkylarkSemantics for @SkylarkCallable, so annotated methods can specifically get a semantics object
This is slightly redundant with useEnvironment, yes (as one can easily obtain the semantics object with Environment), but we intend on restricting useEnvironment so that structField=true methods cannot specify useEnvironment, but *can* specify useSkylarkSemantics. In general, we can also ween off non structField methods to use useSkylarkSemantics instead of useEnvironment in cases where this is feasible. RELNOTES: None. PiperOrigin-RevId: 190082547
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
index 566c9fecf9..1569fa51c2 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java
@@ -487,6 +487,7 @@ public final class FuncallExpression extends Expression {
numExtraInterpreterParams += callable.useLocation() ? 1 : 0;
numExtraInterpreterParams += callable.useAst() ? 1 : 0;
numExtraInterpreterParams += callable.useEnvironment() ? 1 : 0;
+ numExtraInterpreterParams += callable.useSkylarkSemantics() ? 1 : 0;
int mandatoryPositionals = callable.mandatoryPositionals();
if (mandatoryPositionals < 0) {
@@ -585,6 +586,9 @@ public final class FuncallExpression extends Expression {
if (callable.useEnvironment()) {
builder.add(environment);
}
+ if (callable.useSkylarkSemantics()) {
+ builder.add(environment.getSemantics());
+ }
return ArgumentListConversionResult.fromArgumentList(builder.build());
}