diff options
Diffstat (limited to 'src/main/java/com/google/devtools/build/lib/rules')
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaInfo.java | 8 | ||||
-rw-r--r-- | src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java | 15 |
2 files changed, 20 insertions, 3 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 1a96c66d19..63e2656b41 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 @@ -326,6 +326,14 @@ public final class JavaInfo extends NativeInfo { || javaToolchain != null || hostJavabase != null; if (hasLegacyArg) { + if (env.getSemantics().incompatibleDisallowLegacyJavaInfo()) { + throw new EvalException( + loc, + "Cannot use deprecated argument when " + + "--incompatible_disallow_legacy_javainfo is set. " + + "Deprecated arguments are 'actions', 'sources', 'source_jars', " + + "'use_ijar', 'java_toolchain', 'host_javabase'."); + } boolean hasNewArg = compileJar != null || sourceJar != null; if (hasNewArg) { throw new EvalException( diff --git a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java index 6570c5e771..310e19733f 100644 --- a/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java +++ b/src/main/java/com/google/devtools/build/lib/rules/java/JavaSkylarkCommon.java @@ -31,6 +31,7 @@ import com.google.devtools.build.lib.skylarkinterface.Param; import com.google.devtools.build.lib.skylarkinterface.ParamType; import com.google.devtools.build.lib.skylarkinterface.SkylarkCallable; import com.google.devtools.build.lib.skylarkinterface.SkylarkModule; +import com.google.devtools.build.lib.syntax.Environment; import com.google.devtools.build.lib.syntax.EvalException; import com.google.devtools.build.lib.syntax.Runtime; import com.google.devtools.build.lib.syntax.SkylarkList; @@ -154,7 +155,8 @@ public class JavaSkylarkCommon { "A list or set of output source jars that contain the uncompiled source files " + "including the source files generated by annotation processors if the case.") }, - useLocation = true) + useLocation = true, + useEnvironment = true) public JavaInfo create( @Nullable Object actionsUnchecked, Object compileTimeJars, @@ -164,9 +166,16 @@ public class JavaSkylarkCommon { Object transitiveCompileTimeJars, Object transitiveRuntimeJars, Object sourceJars, - Location location) + Location location, + Environment environment) throws EvalException { - + if (environment.getSemantics().incompatibleDisallowLegacyJavaInfo()) { + throw new EvalException( + location, + "create_provider is deprecated and cannot be used when " + + "--incompatible_disallow_legacy_javainfo is set. " + + "Please migrate to the JavaInfo constructor."); + } return JavaInfoBuildHelper.getInstance() .create( actionsUnchecked, |