diff options
Diffstat (limited to 'src/main/java/com/google/devtools')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java | 5 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaTargetAttributes.java | 3 |
2 files changed, 6 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java index 0d125f9a6e..a82496fd18 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaPluginInfoProvider.java @@ -15,6 +15,7 @@ package com.google.devtools.build.lib.rules.java; import com.google.auto.value.AutoValue; +import com.google.common.collect.ImmutableList; import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.analysis.TransitiveInfoProvider; import com.google.devtools.build.lib.collect.nestedset.NestedSet; @@ -81,6 +82,10 @@ public abstract class JavaPluginInfoProvider implements TransitiveInfoProvider { } } + public static JavaPluginInfoProvider merge(JavaPluginInfoProvider a, JavaPluginInfoProvider b) { + return a.isEmpty() ? b : b.isEmpty() ? a : merge(ImmutableList.of(a, b)); + } + public static JavaPluginInfoProvider merge(Iterable<JavaPluginInfoProvider> providers) { List<JavaPluginInfo> plugins = new ArrayList<>(); List<JavaPluginInfo> apiGeneratingPlugins = new ArrayList<>(); diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaTargetAttributes.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaTargetAttributes.java index d75c9dad76..a30127f05d 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaTargetAttributes.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaTargetAttributes.java @@ -299,8 +299,7 @@ public class JavaTargetAttributes { public Builder addPlugin(JavaPluginInfoProvider plugins) { Preconditions.checkArgument(!built); - Preconditions.checkArgument(this.plugins.isEmpty()); - this.plugins = plugins; + this.plugins = JavaPluginInfoProvider.merge(this.plugins, plugins); return this; } |