aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
diff options
context:
space:
mode:
authorGravatar Florian Weikert <fwe@google.com>2015-09-02 14:04:33 +0000
committerGravatar Florian Weikert <fwe@google.com>2015-09-02 14:33:19 +0000
commit6a663390e5247c8619991ca763a9496839d61f8b (patch)
treea1ddb3c8c161efc7f9882ca71b0bd96cfcf53957 /src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
parente899fc3054d25cf5d8fd06d585dd05737944e7cd (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.java9
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());
}