diff options
author | 2018-04-10 14:47:47 -0700 | |
---|---|---|
committer | 2018-04-10 14:49:46 -0700 | |
commit | 9594f2c454acf71beb4bccdcf4f7e40c83288e51 (patch) | |
tree | 3d87a4d632a6556d60100268db94125f1e16d2b1 /src | |
parent | 8f4095917e0c5df71164d003a041c0cd3ee46c63 (diff) |
Migrate apple_common.new_objc_provider to use @SkylarkCallable
RELNOTES: None.
PiperOrigin-RevId: 192350172
Diffstat (limited to 'src')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java | 64 | ||||
-rw-r--r-- | src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java | 2 |
2 files changed, 29 insertions, 37 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java index b4c07e32fd..f073292516 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/objc/AppleSkylarkCommon.java @@ -42,8 +42,6 @@ import com.google.devtools.build.lib.rules.objc.ObjcProvider.Key; import com.google.devtools.build.lib.skylarkinterface.Param; import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; -import com.google.devtools.build.lib.skylarkinterface.SkylarkSignature; -import com.google.devtools.build.lib.syntax.BuiltinFunction; import com.google.devtools.build.lib.syntax.Environment; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.syntax.Runtime; @@ -343,13 +341,10 @@ public class AppleSkylarkCommon { return new MultiArchSplitTransitionProvider(); } - @SkylarkSignature( + @SkylarkCallable( name = "new_objc_provider", - objectType = AppleSkylarkCommon.class, - returnType = ObjcProvider.class, doc = "Creates a new ObjcProvider instance.", parameters = { - @Param(name = "self", type = AppleSkylarkCommon.class, doc = "The apple_common instance."), @Param( name = "uses_swift", type = Boolean.class, @@ -368,37 +363,34 @@ public class AppleSkylarkCommon { ), useEnvironment = true ) - public static final BuiltinFunction NEW_OBJC_PROVIDER = - new BuiltinFunction("new_objc_provider") { - @SuppressWarnings("unused") - // This method is registered statically for skylark, and never called directly. - public ObjcProvider invoke( - AppleSkylarkCommon self, Boolean usesSwift, SkylarkDict<String, Object> kwargs, - Environment environment) { - boolean disableObjcResourceKeys = - environment.getSemantics().incompatibleDisableObjcProviderResources(); - ObjcProvider.Builder resultBuilder = new ObjcProvider.Builder(environment.getSemantics()); - if (usesSwift) { - resultBuilder.add(ObjcProvider.FLAG, ObjcProvider.Flag.USES_SWIFT); - } - for (Entry<String, Object> entry : kwargs.entrySet()) { - Key<?> key = ObjcProvider.getSkylarkKeyForString(entry.getKey()); - if (key != null) { - if (disableObjcResourceKeys && ObjcProvider.isDeprecatedResourceKey(key)) { - throw new IllegalArgumentException(String.format(BAD_KEY_ERROR, entry.getKey())); - } - resultBuilder.addElementsFromSkylark(key, entry.getValue()); - } else if (entry.getKey().equals("providers")) { - resultBuilder.addProvidersFromSkylark(entry.getValue()); - } else if (entry.getKey().equals("direct_dep_providers")) { - resultBuilder.addDirectDepProvidersFromSkylark(entry.getValue()); - } else { - throw new IllegalArgumentException(String.format(BAD_KEY_ERROR, entry.getKey())); - } - } - return resultBuilder.build(); + // This method is registered statically for skylark, and never called directly. + public ObjcProvider newObjcProvider( + Boolean usesSwift, + SkylarkDict<?, ?> kwargs, + Environment environment) { + boolean disableObjcResourceKeys = + environment.getSemantics().incompatibleDisableObjcProviderResources(); + ObjcProvider.Builder resultBuilder = new ObjcProvider.Builder(environment.getSemantics()); + if (usesSwift) { + resultBuilder.add(ObjcProvider.FLAG, ObjcProvider.Flag.USES_SWIFT); + } + for (Entry<?, ?> entry : kwargs.entrySet()) { + Key<?> key = ObjcProvider.getSkylarkKeyForString((String) entry.getKey()); + if (key != null) { + if (disableObjcResourceKeys && ObjcProvider.isDeprecatedResourceKey(key)) { + throw new IllegalArgumentException(String.format(BAD_KEY_ERROR, entry.getKey())); } - }; + resultBuilder.addElementsFromSkylark(key, entry.getValue()); + } else if (entry.getKey().equals("providers")) { + resultBuilder.addProvidersFromSkylark(entry.getValue()); + } else if (entry.getKey().equals("direct_dep_providers")) { + resultBuilder.addDirectDepProvidersFromSkylark(entry.getValue()); + } else { + throw new IllegalArgumentException(String.format(BAD_KEY_ERROR, entry.getKey())); + } + } + return resultBuilder.build(); + } @SkylarkCallable( name = "new_dynamic_framework_provider", diff --git a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java index 7a63720693..02fb74f771 100644 --- a/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java +++ b/src/test/java/com/google/devtools/build/lib/rules/objc/ObjcSkylarkTest.java @@ -1378,7 +1378,7 @@ public class ObjcSkylarkTest extends ObjcRuleTestCase { } catch (AssertionError e) { assertThat(e) .hasMessageThat() - .contains("in call to new_objc_provider: Argument xib not a recognized key"); + .contains("Argument xib not a recognized key"); } } |