diff options
author | Florian Weikert <fwe@google.com> | 2015-09-02 14:04:33 +0000 |
---|---|---|
committer | Florian Weikert <fwe@google.com> | 2015-09-02 14:33:19 +0000 |
commit | 6a663390e5247c8619991ca763a9496839d61f8b (patch) | |
tree | a1ddb3c8c161efc7f9882ca71b0bd96cfcf53957 /src/main/java/com/google/devtools/build/lib/packages/PackageFactory.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/packages/PackageFactory.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java index b94147dc54..2122d42a8b 100644 --- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java +++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java @@ -906,10 +906,11 @@ public final class PackageFactory { String ruleClassName, PackageContext context, Map<String, Object> kwargs, - FuncallExpression ast) + FuncallExpression ast, + Environment env) throws RuleFactory.InvalidRuleException, Package.NameConflictException { RuleClass ruleClass = getBuiltInRuleClass(ruleClassName, ruleFactory); - RuleFactory.createAndAddRule(context, ruleClass, kwargs, ast); + RuleFactory.createAndAddRule(context, ruleClass, kwargs, ast, env.getStackTrace()); } private static RuleClass getBuiltInRuleClass(String ruleClassName, RuleFactory ruleFactory) { @@ -942,13 +943,13 @@ public final class PackageFactory { private static BuiltinFunction newRuleFunction( final RuleFactory ruleFactory, final String ruleClass) { return new BuiltinFunction(ruleClass, FunctionSignature.KWARGS, BuiltinFunction.USE_AST_ENV) { - @SuppressWarnings("unchecked") + @SuppressWarnings({"unchecked", "unused"}) public Runtime.NoneType invoke(Map<String, Object> kwargs, FuncallExpression ast, Environment env) throws EvalException { env.checkLoadingPhase(ruleClass, ast.getLocation()); try { - addRule(ruleFactory, ruleClass, getContext(env, ast), kwargs, ast); + addRule(ruleFactory, ruleClass, getContext(env, ast), kwargs, ast, env); } catch (RuleFactory.InvalidRuleException | Package.NameConflictException e) { throw new EvalException(ast.getLocation(), e.getMessage()); } |