aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools
diff options
context:
space:
mode:
authorGravatar Luis Fernando Pino Duque <lpino@google.com>2016-11-08 15:53:47 +0000
committerGravatar Klaus Aehlig <aehlig@google.com>2016-11-09 09:13:03 +0000
commit5119ce4ad6cb0ed9a074c085645b84409d6efcac (patch)
tree8dcc829de66bfb757e10c67fe2624184ba7c404d /src/main/java/com/google/devtools
parent216410b2b45e31c56ad28c61f9523c4d8a984a94 (diff)
*** Reason for rollback *** Breaks several tests under //devtools/ide/eclipse/aspects as shown by the nightly []: [] *** Original change description *** Restrict google_glob_information to eclipse_aspect. '--legacy_expose_globs' flag has no effect now. -- MOS_MIGRATED_REVID=138517258
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java4
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java22
-rw-r--r--src/main/java/com/google/devtools/build/lib/skyframe/SkylarkAspectFactory.java3
3 files changed, 14 insertions, 15 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
index 814ae564b8..6ac83f5667 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleConfiguredTargetBuilder.java
@@ -31,6 +31,7 @@ import com.google.devtools.build.lib.events.Location;
import com.google.devtools.build.lib.packages.Rule;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.packages.TargetUtils;
+import com.google.devtools.build.lib.rules.SkylarkRuleContext.Kind;
import com.google.devtools.build.lib.rules.test.InstrumentedFilesCollector;
import com.google.devtools.build.lib.rules.test.InstrumentedFilesCollector.InstrumentationSpec;
import com.google.devtools.build.lib.rules.test.InstrumentedFilesProvider;
@@ -71,8 +72,7 @@ public final class SkylarkRuleConfiguredTargetBuilder {
throws InterruptedException {
String expectFailure = ruleContext.attributes().get("expect_failure", Type.STRING);
try (Mutability mutability = Mutability.create("configured target")) {
- SkylarkRuleContext skylarkRuleContext = new SkylarkRuleContext(ruleContext,
- null);
+ SkylarkRuleContext skylarkRuleContext = new SkylarkRuleContext(ruleContext, Kind.RULE);
Environment env = Environment.builder(mutability)
.setSkylark()
.setCallerLabel(ruleContext.getLabel())
diff --git a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
index 37a77d4be2..31ad28093e 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/SkylarkRuleContext.java
@@ -44,7 +44,6 @@ import com.google.devtools.build.lib.packages.ImplicitOutputsFunction.SkylarkImp
import com.google.devtools.build.lib.packages.OutputFile;
import com.google.devtools.build.lib.packages.Package;
import com.google.devtools.build.lib.packages.RawAttributeMapper;
-import com.google.devtools.build.lib.packages.SkylarkAspect;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.packages.SkylarkClassObjectConstructor;
import com.google.devtools.build.lib.shell.ShellUtils;
@@ -142,7 +141,6 @@ public final class SkylarkRuleContext {
private final FragmentCollection fragments;
private final FragmentCollection hostFragments;
- private final SkylarkAspect skylarkAspect;
private final SkylarkDict<String, String> makeVariables;
private final SkylarkRuleAttributesCollection attributesCollection;
@@ -153,19 +151,24 @@ public final class SkylarkRuleContext {
private final SkylarkClassObject outputsObject;
/**
+ * Determines whether this context is for rule implementation or for aspect implementation.
+ */
+ public enum Kind {
+ RULE,
+ ASPECT
+ }
+
+ /**
* Creates a new SkylarkRuleContext using ruleContext.
- * @param skylarkAspect aspect for which the context is created, or <code>null</code>
- * if it is for a rule.
* @throws InterruptedException
*/
- public SkylarkRuleContext(RuleContext ruleContext, @Nullable SkylarkAspect skylarkAspect)
+ public SkylarkRuleContext(RuleContext ruleContext, Kind kind)
throws EvalException, InterruptedException {
this.ruleContext = Preconditions.checkNotNull(ruleContext);
this.fragments = new FragmentCollection(ruleContext, ConfigurationTransition.NONE);
this.hostFragments = new FragmentCollection(ruleContext, ConfigurationTransition.HOST);
- this.skylarkAspect = skylarkAspect;
- if (skylarkAspect == null) {
+ if (kind == Kind.RULE) {
Collection<Attribute> attributes = ruleContext.getRule().getAttributes();
HashMap<String, Object> outputsBuilder = new HashMap<>();
if (ruleContext.getRule().getRuleClassObject().outputsDefaultExecutable()) {
@@ -243,11 +246,6 @@ public final class SkylarkRuleContext {
makeVariables = ruleContext.getConfigurationMakeVariableContext().collectMakeVariables();
}
- @Nullable
- public SkylarkAspect getSkylarkAspect() {
- return skylarkAspect;
- }
-
private Function<Attribute, Object> attributeValueExtractorForRule(
final RuleContext ruleContext) {
return new Function<Attribute, Object>() {
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 b5b8087726..450015804b 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
@@ -26,6 +26,7 @@ import com.google.devtools.build.lib.packages.AspectParameters;
import com.google.devtools.build.lib.packages.SkylarkAspect;
import com.google.devtools.build.lib.packages.SkylarkClassObject;
import com.google.devtools.build.lib.rules.SkylarkRuleContext;
+import com.google.devtools.build.lib.rules.SkylarkRuleContext.Kind;
import com.google.devtools.build.lib.syntax.Environment;
import com.google.devtools.build.lib.syntax.EvalException;
import com.google.devtools.build.lib.syntax.EvalExceptionWithStackTrace;
@@ -52,7 +53,7 @@ public class SkylarkAspectFactory implements ConfiguredAspectFactory {
try (Mutability mutability = Mutability.create("aspect")) {
SkylarkRuleContext skylarkRuleContext;
try {
- skylarkRuleContext = new SkylarkRuleContext(ruleContext, skylarkAspect);
+ skylarkRuleContext = new SkylarkRuleContext(ruleContext, Kind.ASPECT);
} catch (EvalException e) {
ruleContext.ruleError(e.getMessage());
return null;