Skylark: load() allows the loading of symbols via an alias.
E.g. load("/foo/bla", my_rule = "old_name") will introduce the symbol "my_rule" as an alias for "old_name".
--
MOS_MIGRATED_REVID=98933635
diff --git a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
index 6c1834e..cea5ea5 100644
--- a/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
+++ b/src/main/java/com/google/devtools/build/lib/syntax/Environment.java
@@ -295,16 +295,18 @@
this.importedExtensions = importedExtensions;
}
- public void importSymbol(PathFragment extension, String symbol)
+ public void importSymbol(PathFragment extension, Identifier symbol, String nameInLoadedFile)
throws NoSuchVariableException, LoadFailedException {
if (!importedExtensions.containsKey(extension)) {
throw new LoadFailedException(extension.toString());
}
- Object value = importedExtensions.get(extension).lookup(symbol);
+
+ Object value = importedExtensions.get(extension).lookup(nameInLoadedFile);
if (!isSkylarkEnabled()) {
value = SkylarkType.convertFromSkylark(value);
}
- update(symbol, value);
+
+ update(symbol.getName(), value);
}
/**