diff options
author | 2016-08-09 09:35:40 +0000 | |
---|---|---|
committer | 2016-08-09 13:45:20 +0000 | |
commit | ea9de07ece727b397e427d11db9611db44753c75 (patch) | |
tree | 642e346746acffe9e32d0db65ab92eeb1f6cbfb0 /src/main/java/com/google/devtools/build/lib/rules/objc | |
parent | 31d70619943fe28a8dcc3e7ecac776fda0d017b6 (diff) |
Add SkylarkClassObjectConstructor - a future return value of "provider" function.
--
MOS_MIGRATED_REVID=129726780
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/objc')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java | 6 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java | 3 |
2 files changed, 7 insertions, 2 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java index 8249fd121a..4051f81ff5 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProvider.java @@ -27,6 +27,7 @@ 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.SkylarkClassObject; +import com.google.devtools.build.lib.packages.SkylarkClassObjectConstructor; import com.google.devtools.build.lib.rules.cpp.CppModuleMap; import com.google.devtools.build.lib.rules.cpp.LinkerInputs; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; @@ -416,12 +417,15 @@ public final class ObjcProvider extends SkylarkClassObject implements Transitive // Items which should be passed to strictly direct dependers, but not transitive dependers. private final ImmutableMap<Key<?>, NestedSet<?>> strictDependencyItems; + private static final SkylarkClassObjectConstructor OBJC_PROVIDER = + new SkylarkClassObjectConstructor("objc_provider"); + private ObjcProvider( ImmutableMap<Key<?>, NestedSet<?>> items, ImmutableMap<Key<?>, NestedSet<?>> nonPropagatedItems, ImmutableMap<Key<?>, NestedSet<?>> strictDependencyItems, ImmutableMap<String, Object> skylarkFields) { - super(skylarkFields, "ObjcProvider field %s could not be instantiated"); + super(OBJC_PROVIDER, skylarkFields, "ObjcProvider field %s could not be instantiated"); this.items = Preconditions.checkNotNull(items); this.nonPropagatedItems = Preconditions.checkNotNull(nonPropagatedItems); this.strictDependencyItems = Preconditions.checkNotNull(strictDependencyItems); diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java index 727891e820..caf0021c8c 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java @@ -25,6 +25,7 @@ import com.google.devtools.build.lib.actions.Artifact; import com.google.devtools.build.lib.collect.nestedset.NestedSet; import com.google.devtools.build.lib.collect.nestedset.NestedSetBuilder; import com.google.devtools.build.lib.packages.SkylarkClassObject; +import com.google.devtools.build.lib.packages.SkylarkClassObjectConstructor; import com.google.devtools.build.lib.rules.objc.ObjcProvider.Key; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.syntax.EvalUtils; @@ -133,7 +134,7 @@ public class ObjcProviderSkylarkConverters { public Object valueForSkylark(Key<?> javaKey, NestedSet<?> javaValue) { NestedSetBuilder<SkylarkClassObject> result = NestedSetBuilder.stableOrder(); for (BundleableFile bundleableFile : (Iterable<BundleableFile>) javaValue) { - result.add(new SkylarkClassObject( + result.add(SkylarkClassObjectConstructor.STRUCT.create( ImmutableMap.<String, Object>of( BUNDLED_FIELD, bundleableFile.getBundled(), BUNDLE_PATH_FIELD, bundleableFile.getBundlePath() |