aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2016-12-05 16:57:02 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2016-12-05 17:25:12 +0000
commita701988a4dd57754fe196d04f961b9a19ab0080b (patch)
treecf8443ee5b3c64c21930ebd336044a9986b7be2f /src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java
parent76e31d16ba359025c86e44a0e6b003d8347673ac (diff)
Add 'aspect_id' for to identify aspects that has been applied to the target.
Add a concept of aspect_id: an unique string that identifies a propagating aspect (aspect class + parameters). This string is designed to be: - Unique for each aspect - human-readable for debugging purposes - not easily parsable. Skylark API: - `ctx.aspect_id` returns an identifier of the current aspect inside aspect implementation function - `Target.aspect_ids` return a list of aspect ids for aspects applied to a given Target (https://www.bazel.io/versions/master/docs/skylark/lib/Target.html) -- PiperOrigin-RevId: 141057865 MOS_MIGRATED_REVID=141057865
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java
index f078c3a154..2608c7f535 100644
--- a/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java
@@ -15,6 +15,7 @@ package com.google.devtools.build.lib.skyframe;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
+import com.google.devtools.build.lib.analysis.AspectDescriptor;
import com.google.devtools.build.lib.analysis.ConfiguredAspect;
import com.google.devtools.build.lib.analysis.ConfiguredAspectFactory;
import com.google.devtools.build.lib.analysis.ConfiguredTarget;
@@ -50,9 +51,11 @@ public class SkylarkAspectFactory implements ConfiguredAspectFactory {
ConfiguredTarget base, RuleContext ruleContext, AspectParameters parameters)
throws InterruptedException {
try (Mutability mutability = Mutability.create("aspect")) {
+ AspectDescriptor aspectDescriptor = new AspectDescriptor(
+ skylarkAspect.getAspectClass(), parameters);
SkylarkRuleContext skylarkRuleContext;
try {
- skylarkRuleContext = new SkylarkRuleContext(ruleContext, skylarkAspect);
+ skylarkRuleContext = new SkylarkRuleContext(ruleContext, aspectDescriptor);
} catch (EvalException e) {
ruleContext.ruleError(e.getMessage());
return null;
@@ -82,7 +85,7 @@ public class SkylarkAspectFactory implements ConfiguredAspectFactory {
}
ConfiguredAspect.Builder builder = new ConfiguredAspect.Builder(
- skylarkAspect.getAspectClass(), parameters, ruleContext);
+ aspectDescriptor, ruleContext);
SkylarkClassObject struct = (SkylarkClassObject) aspectSkylarkObject;
Location loc = struct.getCreationLoc();