diff options
author | Laurent Le Brun <laurentlb@google.com> | 2015-03-24 10:04:50 +0000 |
---|---|---|
committer | Han-Wen Nienhuys <hanwen@google.com> | 2015-03-24 16:41:52 +0000 |
commit | 8fc603ca043a8faa97abbd9677866290807b7b6e (patch) | |
tree | 236081d562b868b911b59b34426502e5a128b6c4 /src/main/java/com/google/devtools/build | |
parent | adeef73a97cf191301a7b563883a075caed733b7 (diff) |
Skylark: Allow builtin functions to be shadowed.
This change makes them consistent with global variables.
e.g.
def foo(len): return len + 1 # now allowed
Redefinition is still forbidden.
--
MOS_MIGRATED_REVID=89383535
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java b/src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java index cc69867555..a3c199121d 100644 --- a/src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java +++ b/src/main/java/com/google/devtools/build/lib/syntax/ValidationEnvironment.java @@ -89,15 +89,10 @@ public class ValidationEnvironment { * Creates a local ValidationEnvironment to validate user defined function bodies. */ public ValidationEnvironment(ValidationEnvironment parent, SkylarkFunctionType currentFunction) { + // Don't copy readOnlyVariables: Variables may shadow global values. this.parent = parent; this.variableTypes.put(SkylarkType.GLOBAL, new HashMap<String, SkylarkType>()); this.currentFunction = currentFunction; - for (String var : parent.readOnlyVariables) { - if (!parent.variableLocations.containsKey(var)) { - // Mark built in global vars readonly. Variables defined in Skylark may be shadowed locally. - readOnlyVariables.add(var); - } - } this.clonable = false; } |