Fix assorted ErrorProne warnings.
RELNOTES: None.
PiperOrigin-RevId: 167574104
diff --git a/src/main/java/com/google/devtools/build/lib/packages/InputFile.java b/src/main/java/com/google/devtools/build/lib/packages/InputFile.java
index c04a346..acb1809 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/InputFile.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/InputFile.java
@@ -77,7 +77,7 @@
}
public boolean isLicenseSpecified() {
- return license != null && license != License.NO_LICENSE;
+ return license != null && license.isSpecified();
}
@Override
diff --git a/src/main/java/com/google/devtools/build/lib/packages/License.java b/src/main/java/com/google/devtools/build/lib/packages/License.java
index 8248d8b..6467a7e 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/License.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/License.java
@@ -289,6 +289,11 @@
return exceptions;
}
+ @SuppressWarnings("ReferenceEquality")
+ public boolean isSpecified() {
+ return this != License.NO_LICENSE;
+ }
+
/**
* A simple toString implementation which generates a canonical form of the
* license. (The order of license types is guaranteed to be canonical by
@@ -310,10 +315,9 @@
*/
@Override
public boolean equals(Object o) {
- return o == this ||
- o instanceof License &&
- ((License) o).licenseTypes.equals(this.licenseTypes) &&
- ((License) o).exceptions.equals(this.exceptions);
+ return o == this || (o instanceof License
+ && ((License) o).licenseTypes.equals(this.licenseTypes)
+ && ((License) o).exceptions.equals(this.exceptions));
}
/**
diff --git a/src/main/java/com/google/devtools/build/lib/packages/Package.java b/src/main/java/com/google/devtools/build/lib/packages/Package.java
index 9e4ab19..8a17fbd 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/Package.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/Package.java
@@ -47,6 +47,7 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.Objects;
import java.util.Set;
import javax.annotation.Nullable;
@@ -1167,7 +1168,7 @@
}
if (!((InputFile) cacheInstance).isVisibilitySpecified()
|| cacheInstance.getVisibility() != visibility
- || cacheInstance.getLicense() != license) {
+ || !Objects.equals(cacheInstance.getLicense(), license)) {
targets.put(filename, new InputFile(
pkg, cacheInstance.getLabel(), cacheInstance.getLocation(), visibility, license));
}
diff --git a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
index 7394213..254153f 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/PackageFactory.java
@@ -782,7 +782,7 @@
String.format("licenses for exported file '%s' declared twice",
inputFile.getName()));
}
- if (license == null && pkgBuilder.getDefaultLicense() == License.NO_LICENSE
+ if (license == null && !pkgBuilder.getDefaultLicense().isSpecified()
&& RuleClass.isThirdPartyPackage(pkgBuilder.getPackageIdentifier())) {
throw new EvalException(ast.getLocation(),
"third-party file '" + inputFile.getName() + "' lacks a license declaration "
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
index 7cbb25f..3a222db 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleClass.java
@@ -1688,7 +1688,7 @@
if (license == null) {
license = pkgBuilder.getDefaultLicense();
}
- if (license == License.NO_LICENSE) {
+ if (!license.isSpecified()) {
rule.reportError("third-party rule '" + rule.getLabel() + "' lacks a license declaration "
+ "with one of the following types: notice, reciprocal, permissive, "
+ "restricted, unencumbered, by_exception_only",
diff --git a/src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java b/src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java
index 930279b..0ff628e 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java
+++ b/src/main/java/com/google/devtools/build/lib/packages/RuleFactory.java
@@ -384,7 +384,7 @@
// rules created from function calls in a subincluded file, even if both files share a path
// prefix (for example, when //a/package:BUILD subincludes //a/package/with/a/subpackage:BUILD).
// We can revert to that approach once subincludes aren't supported anymore.
- String absolutePath = Location.printPathAndLine(location);
+ String absolutePath = Location.printLocation(location);
int pos = absolutePath.indexOf(label.getPackageName());
return (pos < 0) ? null : absolutePath.substring(pos);
}