diff options
author | cparsons <cparsons@google.com> | 2018-03-22 10:02:02 -0700 |
---|---|---|
committer | Copybara-Service <copybara-piper@google.com> | 2018-03-22 10:03:55 -0700 |
commit | 73e1016c72e5a73c7f204efe7a70b4c780be8674 (patch) | |
tree | dff662457bdbfd85b1b3b4a095e261c9f64e52f3 /src/main/java/com/google/devtools/build/lib/syntax | |
parent | 4c4e9e28950c64f697de08008d5049852ee83501 (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')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/FuncallExpression.java | 4 |
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()); } |