aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google/devtools/build/lib/rules/java
diff options
context:
space:
mode:
authorGravatar twerth <twerth@google.com>2018-07-25 05:47:05 -0700
committerGravatar Copybara-Service <copybara-piper@google.com>2018-07-25 05:48:45 -0700
commit54a381b2bca74988c01b7e4bb7cf4c3e1507ac14 (patch)
tree9f302f7992e99fa2a36e1e83fcff30c6b9074fc1 /src/main/java/com/google/devtools/build/lib/rules/java
parent8fd1afd9ce02b5c6b058064c11e92bc0e3cd3145 (diff)
Fake a JavaStrictCompilationArgsProvider if there's none.
There were convoluted cases with multiple JavaInfo created from Skylark that didn't have the JavaStrictCompilationArgsProvider. If these were to be merged and later forwarded with exports we would miss them as dependencies. RELNOTES: None PiperOrigin-RevId: 205980933
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules/java')
-rw-r--r--src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
index ab6d409b1f..ec3ad4727f 100644
--- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
+++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java
@@ -553,6 +553,16 @@ public final class JavaInfo extends NativeInfo implements JavaInfoApi<Artifact>
}
public JavaInfo build() {
+ // TODO(twerth): Clean up after we remove java_proto_library.strict_deps.
+ // Instead of teaching every (potential Skylark) caller to also create the provider for strict
+ // deps we wrap the non strict provider instead.
+ if (!providerMap.contains(JavaStrictCompilationArgsProvider.class)
+ && providerMap.contains(JavaCompilationArgsProvider.class)) {
+ JavaStrictCompilationArgsProvider javaStrictCompilationArgsProvider =
+ new JavaStrictCompilationArgsProvider(
+ providerMap.getProvider(JavaCompilationArgsProvider.class));
+ addProvider(JavaStrictCompilationArgsProvider.class, javaStrictCompilationArgsProvider);
+ }
return new JavaInfo(providerMap.build(), runtimeJars, neverlink, javaConstraints, location);
}
}