aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/objc
diff options
context:
space:
mode:
authorGravatar Dmitry Lomov <dslomov@google.com>2016-08-09 09:35:40 +0000
committerGravatar Yue Gan <yueg@google.com>2016-08-09 13:45:20 +0000
commitea9de07ece727b397e427d11db9611db44753c75 (patch)
tree642e346746acffe9e32d0db65ab92eeb1f6cbfb0 /src/main/java/com/google/devtools/build/lib/rules/objc
parent31d70619943fe28a8dcc3e7ecac776fda0d017b6 (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.java6
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/objc/ObjcProviderSkylarkConverters.java3
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()