From 677fa3104485b54d93fc319aa004d8a6f80296a8 Mon Sep 17 00:00:00 2001 From: Googler Date: Tue, 14 Aug 2018 09:26:27 -0700 Subject: Export constructors as global symbols. This CL also includes a fix for constructor names from the "Provider" module. Naming does not include the module's name now. (Provider.AndroidAssetsInfo() -> AndroidAssetsInfo()) RELNOTES: None PiperOrigin-RevId: 208658905 --- .../google/devtools/build/docgen/ApiExporter.java | 8 ++++++- .../android/AndroidAssetsInfoApi.java | 2 +- .../android/AndroidCcLinkParamsProviderApi.java | 4 +++- .../android/AndroidFeatureFlagSetProviderApi.java | 4 +++- .../android/AndroidIdlProviderApi.java | 2 +- .../android/AndroidInstrumentationInfoApi.java | 25 +++++++++++----------- .../AndroidLibraryResourceClassJarProviderApi.java | 4 +++- .../android/AndroidPreDexJarProviderApi.java | 2 +- .../android/AndroidResourcesInfoApi.java | 2 +- .../android/ProguardMappingProviderApi.java | 2 +- .../java/ProguardSpecProviderApi.java | 2 +- 11 files changed, 34 insertions(+), 23 deletions(-) diff --git a/src/main/java/com/google/devtools/build/docgen/ApiExporter.java b/src/main/java/com/google/devtools/build/docgen/ApiExporter.java index a0124d251d..97050a7d67 100644 --- a/src/main/java/com/google/devtools/build/docgen/ApiExporter.java +++ b/src/main/java/com/google/devtools/build/docgen/ApiExporter.java @@ -18,6 +18,7 @@ import com.google.devtools.build.docgen.builtin.BuiltinProtos.Callable; import com.google.devtools.build.docgen.builtin.BuiltinProtos.Param; import com.google.devtools.build.docgen.builtin.BuiltinProtos.Type; import com.google.devtools.build.docgen.builtin.BuiltinProtos.Value; +import com.google.devtools.build.docgen.skylark.SkylarkConstructorMethodDoc; import com.google.devtools.build.docgen.skylark.SkylarkMethodDoc; import com.google.devtools.build.docgen.skylark.SkylarkModuleDoc; import com.google.devtools.build.docgen.skylark.SkylarkParamDoc; @@ -50,7 +51,12 @@ public class ApiExporter { type.setName(mod.getName()); type.setDoc(mod.getDocumentation()); for (SkylarkMethodDoc meth : mod.getJavaMethods()) { - type.addField(collectFieldInfo(meth)); + // Constructors should be exported as globals. + if (meth instanceof SkylarkConstructorMethodDoc) { + builtins.addGlobal(collectFieldInfo(meth)); + } else { + type.addField(collectFieldInfo(meth)); + } } builtins.addType(type); diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidAssetsInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidAssetsInfoApi.java index 2263fa73f9..85ee70c042 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidAssetsInfoApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidAssetsInfoApi.java @@ -149,7 +149,7 @@ public interface AndroidAssetsInfoApi createInfo( Label label, FileT validationResult, diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidCcLinkParamsProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidCcLinkParamsProviderApi.java index 7f55e28e76..a60c509e81 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidCcLinkParamsProviderApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidCcLinkParamsProviderApi.java @@ -53,7 +53,9 @@ public interface AndroidCcLinkParamsProviderApi exte type = CcLinkingInfoApi.class), }, selfCall = true) - @SkylarkConstructor(objectType = AndroidCcLinkParamsProviderApi.class) + @SkylarkConstructor( + objectType = AndroidCcLinkParamsProviderApi.class, + receiverNameForDoc = NAME) public AndroidCcLinkParamsProviderApi createInfo(T store) throws EvalException; } } diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidFeatureFlagSetProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidFeatureFlagSetProviderApi.java index 2a7ec22380..ffcf8cec50 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidFeatureFlagSetProviderApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidFeatureFlagSetProviderApi.java @@ -56,7 +56,9 @@ public interface AndroidFeatureFlagSetProviderApi extends StructApi { type = SkylarkDict.class), }, selfCall = true) - @SkylarkConstructor(objectType = AndroidFeatureFlagSetProviderApi.class) + @SkylarkConstructor( + objectType = AndroidFeatureFlagSetProviderApi.class, + receiverNameForDoc = NAME) AndroidFeatureFlagSetProviderApi create(SkylarkDict flags) throws EvalException; } } diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidIdlProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidIdlProviderApi.java index 1278e0780e..36900f74cb 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidIdlProviderApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidIdlProviderApi.java @@ -108,7 +108,7 @@ public interface AndroidIdlProviderApi extends StructApi generic1 = FileApi.class), }, selfCall = true) - @SkylarkConstructor(objectType = AndroidIdlProviderApi.class) + @SkylarkConstructor(objectType = AndroidIdlProviderApi.class, receiverNameForDoc = NAME) AndroidIdlProviderApi createInfo( SkylarkNestedSet transitiveIdlImportRoots, SkylarkNestedSet transitiveIdlImports, diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidInstrumentationInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidInstrumentationInfoApi.java index 4c70937abb..6dc2c380dd 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidInstrumentationInfoApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidInstrumentationInfoApi.java @@ -58,20 +58,19 @@ public interface AndroidInstrumentationInfoApi extends St name = "AndroidInstrumentationInfo", doc = "The AndroidInstrumentationInfo constructor.", parameters = { - @Param( - name = "target_apk", - type = FileApi.class, - named = true, - doc = "The target APK of the instrumentation test." - ), - @Param( - name = "instrumentation_apk", - type = FileApi.class, - named = true, - doc = "The instrumentation APK that should be executed." - )}, + @Param( + name = "target_apk", + type = FileApi.class, + named = true, + doc = "The target APK of the instrumentation test."), + @Param( + name = "instrumentation_apk", + type = FileApi.class, + named = true, + doc = "The instrumentation APK that should be executed.") + }, selfCall = true) - @SkylarkConstructor(objectType = AndroidInstrumentationInfoApi.class) + @SkylarkConstructor(objectType = AndroidInstrumentationInfoApi.class, receiverNameForDoc = NAME) public AndroidInstrumentationInfoApi createInfo( FileT targetApk, FileT instrumentationApk) throws EvalException; } diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidLibraryResourceClassJarProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidLibraryResourceClassJarProviderApi.java index 4cdb1f3e2f..1542ed0a5b 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidLibraryResourceClassJarProviderApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidLibraryResourceClassJarProviderApi.java @@ -55,7 +55,9 @@ public interface AndroidLibraryResourceClassJarProviderApi create(SkylarkNestedSet jars) throws EvalException; } diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidPreDexJarProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidPreDexJarProviderApi.java index 404fa8f0c5..a6007a0de4 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidPreDexJarProviderApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidPreDexJarProviderApi.java @@ -53,7 +53,7 @@ public interface AndroidPreDexJarProviderApi extends Stru type = FileApi.class), }, selfCall = true) - @SkylarkConstructor(objectType = AndroidPreDexJarProviderApi.class) + @SkylarkConstructor(objectType = AndroidPreDexJarProviderApi.class, receiverNameForDoc = NAME) public AndroidPreDexJarProviderApi createInfo(FileT preDexJar) throws EvalException; } } diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidResourcesInfoApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidResourcesInfoApi.java index ea0705a15f..e69ce93809 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidResourcesInfoApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/AndroidResourcesInfoApi.java @@ -202,7 +202,7 @@ public interface AndroidResourcesInfoApi< generic1 = FileApi.class), }, selfCall = true) - @SkylarkConstructor(objectType = AndroidResourcesInfoApi.class) + @SkylarkConstructor(objectType = AndroidResourcesInfoApi.class, receiverNameForDoc = NAME) AndroidResourcesInfoApi createInfo( Label label, AndroidManifestT manifest, diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ProguardMappingProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ProguardMappingProviderApi.java index 28df971a77..a48a6c3e45 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ProguardMappingProviderApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/android/ProguardMappingProviderApi.java @@ -51,7 +51,7 @@ public interface ProguardMappingProviderApi extends Struc type = FileApi.class), }, selfCall = true) - @SkylarkConstructor(objectType = ProguardMappingProviderApi.class) + @SkylarkConstructor(objectType = ProguardMappingProviderApi.class, receiverNameForDoc = NAME) public ProguardMappingProviderApi createInfo(FileT proguardMapping) throws EvalException; } } diff --git a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/ProguardSpecProviderApi.java b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/ProguardSpecProviderApi.java index 39b2cafe69..4e20a0fd19 100644 --- a/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/ProguardSpecProviderApi.java +++ b/src/main/java/com/google/devtools/build/lib/skylarkbuildapi/java/ProguardSpecProviderApi.java @@ -54,7 +54,7 @@ public interface ProguardSpecProviderApi extends StructAp generic1 = FileApi.class), }, selfCall = true) - @SkylarkConstructor(objectType = ProguardSpecProviderApi.class) + @SkylarkConstructor(objectType = ProguardSpecProviderApi.class, receiverNameForDoc = NAME) ProguardSpecProviderApi create(SkylarkNestedSet specs) throws EvalException; } } -- cgit v1.2.3