diff options
author | 2015-12-04 20:53:54 +0000 | |
---|---|---|
committer | 2015-12-07 21:14:43 +0000 | |
commit | 9f13600cb64f572a8ded7cd6cee802240f3f81d6 (patch) | |
tree | e3fc26e51d237c0720181bad5ccb7b0a2beb0569 /src/main/java/com/google/devtools/build | |
parent | 0d2e409ec8eeadfde90b1860935af65d76c90966 (diff) |
Allow @AutoValue-ed classes as provider keys. Also, reject the generated AutoValue_* classes from being provider keys.
--
MOS_MIGRATED_REVID=109440137
Diffstat (limited to 'src/main/java/com/google/devtools/build')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java index 95b510257b..0d5bfa35da 100644 --- a/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java +++ b/src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java @@ -25,12 +25,10 @@ import com.google.devtools.build.lib.cmdline.Label; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.collect.nestedset.Order; -import com.google.devtools.build.lib.concurrent.ThreadSafety.Immutable; import com.google.devtools.build.lib.packages.BuildType; import com.google.devtools.build.lib.packages.TriState; import com.google.devtools.build.lib.vfs.PathFragment; -import java.lang.reflect.Modifier; import java.util.ArrayList; import java.util.Collection; @@ -136,9 +134,10 @@ public final class AnalysisUtils { public static <T extends TransitiveInfoProvider> void checkProvider(Class<T> clazz) { if (!clazz.isInterface()) { Preconditions.checkArgument( - Modifier.isFinal(clazz.getModifiers()), "%s has to be final", clazz.getName()); - Preconditions.checkArgument(clazz.isAnnotationPresent(Immutable.class), - "%s has to be tagged with @Immutable", clazz.getName()); + !clazz.getSimpleName().startsWith("AutoValue_") || clazz.getSuperclass() == null, + "%s is generated by @AutoValue - you should use %s instead", + clazz.getSimpleName(), + clazz.getSuperclass().getSimpleName()); } } } |