aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build
diff options
context:
space:
mode:
authorGravatar Laurent Le Brun <laurentlb@google.com>2015-03-24 10:04:50 +0000
committerGravatar Han-Wen Nienhuys <hanwen@google.com>2015-03-24 16:41:52 +0000
commit8fc603ca043a8faa97abbd9677866290807b7b6e (patch)
tree236081d562b868b911b59b34426502e5a128b6c4 /src/main/java/com/google/devtools/build
parentadeef73a97cf191301a7b563883a075caed733b7 (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.java7
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;
}