diff options
author | 2015-09-02 14:04:33 +0000 | |
---|---|---|
committer | 2015-09-02 14:33:19 +0000 | |
commit | 6a663390e5247c8619991ca763a9496839d61f8b (patch) | |
tree | a1ddb3c8c161efc7f9882ca71b0bd96cfcf53957 /src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java | |
parent | e899fc3054d25cf5d8fd06d585dd05737944e7cd (diff) |
When a Skylark macro creates a native rule, it also sets the following rule attributes: generator_{function, name, location}
--
MOS_MIGRATED_REVID=102139196
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java | 27 |
1 files changed, 2 insertions, 25 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java index 4c070b4309..e2540342c7 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java +++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleClassFunctions.java @@ -331,37 +331,14 @@ public class SkylarkRuleClassFunctions { } RuleClass ruleClass = builder.build(ruleClassName); PackageContext pkgContext = (PackageContext) env.lookup(PackageFactory.PKG_CONTEXT); - return RuleFactory.createAndAddRule(pkgContext, ruleClass, - addGeneratorAttributesForMacros((Map<String, Object>) args[0], env), ast); + return RuleFactory.createAndAddRule( + pkgContext, ruleClass, (Map<String, Object>) args[0], ast, env.getStackTrace()); } catch (InvalidRuleException | NameConflictException | NoSuchVariableException e) { throw new EvalException(ast.getLocation(), e.getMessage()); } } /** - * If the current rule was created by a macro, this method sets the appropriate values for the - * attributes generator_{name, function, location} and returns a map of all attribute values. - * - * <p>Otherwise, the specified map of arguments is returned without any changes. - */ - private Map<String, Object> addGeneratorAttributesForMacros( - Map<String, Object> args, Environment env) { - ImmutableList<BaseFunction> stackTrace = env.getStackTrace(); - if (stackTrace.isEmpty()) { - // If there was a macro, it would be on the stack. - return args; - } - - BaseFunction generator = stackTrace.get(0); // BaseFunction - ImmutableMap.Builder<String, Object> builder = ImmutableMap.builder(); - builder.putAll(args); - builder.put("generator_name", args.get("name")); - builder.put("generator_function", generator.getName()); - builder.put("generator_location", generator.getLocationPathAndLine()); - return builder.build(); - } - - /** * Export a RuleFunction from a Skylark file with a given name. */ void export(PathFragment skylarkFile, String ruleClassName) { |