diff options
author | dslomov <dslomov@google.com> | 2017-07-10 17:15:27 +0200 |
---|---|---|
committer | László Csomor <laszlocsomor@google.com> | 2017-07-10 17:45:04 +0200 |
commit | 77baa4c372ae014db8e17f6d3c60bd88597853d9 (patch) | |
tree | 3ca2c63943782b506b0f19f5b7f7465909723590 /src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java | |
parent | 45bd34e747d13fc2bebdc849a11b4b952da5d8a6 (diff) |
Make native declared providers type-safe.
RELNOTES: None.
PiperOrigin-RevId: 161395570
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/analysis/AnalysisUtils.java | 11 |
1 files changed, 5 insertions, 6 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 209eb226ae..966471c37f 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,7 +25,7 @@ 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.packages.BuildType; -import com.google.devtools.build.lib.packages.ClassObjectConstructor; +import com.google.devtools.build.lib.packages.NativeClassObjectConstructor; import com.google.devtools.build.lib.packages.SkylarkClassObject; import com.google.devtools.build.lib.packages.TriState; import com.google.devtools.build.lib.vfs.PathFragment; @@ -82,15 +82,14 @@ public final class AnalysisUtils { * Returns the list of declared providers (native and Skylark) of the specified Skylark key from a * set of transitive info collections. */ - public static <T extends SkylarkClassObject> Iterable<T> getProviders( + public static <T extends SkylarkClassObject> Iterable<T> getProviders( Iterable<? extends TransitiveInfoCollection> prerequisites, - final ClassObjectConstructor.Key skylarkKey, - Class<T> resultClass) { + final NativeClassObjectConstructor<T> skylarkKey) { ImmutableList.Builder<T> result = ImmutableList.builder(); for (TransitiveInfoCollection prerequisite : prerequisites) { - SkylarkClassObject prerequisiteProvider = prerequisite.get(skylarkKey); + T prerequisiteProvider = prerequisite.get(skylarkKey); if (prerequisiteProvider != null) { - result.add(resultClass.cast(prerequisiteProvider)); + result.add(prerequisiteProvider); } } return result.build(); |