Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade JSpecify 0.2.0 -> 0.3.0 #4059

Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -248,7 +248,8 @@ private boolean enclosingAnnotationDefaultsNonTypeVariablesToNonNull(
if (hasAnnotation(sym, "com.google.protobuf.Internal$ProtoNonnullApi", state)) {
return true;
}
if (hasAnnotation(sym, "org.jspecify.nullness.NullMarked", state)
if ((hasAnnotation(sym, "org.jspecify.annotations.NullMarked", state)
|| hasAnnotation(sym, "org.jspecify.nullness.NullMarked", state))
&& weTrustNullMarkedOn(sym, state)) {
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -129,7 +129,8 @@ static boolean nullnessChecksShouldBeConservative(ErrorProneFlags flags) {

static boolean isInNullMarkedScope(Symbol sym, VisitorState state) {
for (; sym != null; sym = sym.getEnclosingElement()) {
if (hasAnnotation(sym, "org.jspecify.nullness.NullMarked", state)) {
if (hasAnnotation(sym, "org.jspecify.annotations.NullMarked", state)
|| hasAnnotation(sym, "org.jspecify.nullness.NullMarked", state)) {
return true;
}
}
Expand Down Expand Up @@ -353,7 +354,7 @@ private static NullableAnnotationToUse pickNullableAnnotation(VisitorState state
.orElse(
state.isAndroidCompatible()
? "androidx.annotation.Nullable"
: "org.jspecify.nullness.Nullable");
: "org.jspecify.annotations.Nullable");
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I filed this PR because an Error Prone suggested fix introduced a org.jspecify.nullness.Nullable usage, while our project uses JSpecify 0.3.0. This caused a build failure. Since version 0.3.0 has been out for more than 8 months it doesn't seem unreasonable to prefer it over the older 0.2.0 release.

if (sym != null) {
ClassSymbol classSym = (ClassSymbol) sym;
if (classSym.isAnnotationType()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ public void methodReturnsOptionalWithAnotherNullableAnnotation_showsError() {
.addSourceLines(
"Test.java",
"import java.util.Optional;",
"import org.jspecify.nullness.Nullable;",
"import org.jspecify.annotations.Nullable;",
"final class Test {",
" @Nullable",
" // BUG: Diagnostic contains:",
Expand Down Expand Up @@ -136,7 +136,7 @@ public void methodReturnsNonOptionalWithAnotherNullableAnnotation_noError() {
compilationHelper
.addSourceLines(
"Test.java",
"import org.jspecify.nullness.Nullable;",
"import org.jspecify.annotations.Nullable;",
"final class Test {",
" @Nullable",
" private Object foo() {",
Expand All @@ -151,7 +151,7 @@ public void methodHasNullableNonOptionalAsParameter_noError() {
compilationHelper
.addSourceLines(
"Test.java",
"import org.jspecify.nullness.Nullable;",
"import org.jspecify.annotations.Nullable;",
"final class Test {",
" private void foo(@Nullable Object object) {}",
"}")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ public void positiveConservativeNullMarked() {
conservativeHelper
.addSourceLines(
"Foo.java",
"import org.jspecify.nullness.NullMarked;",
"import org.jspecify.annotations.NullMarked;",
"@NullMarked",
"abstract class Foo {",
" // BUG: Diagnostic contains: @Nullable",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -457,7 +457,7 @@ public void nonAnnotationNullable() {
.addOutputLines(
"out/Test.java",
"class T {",
" private final @org.jspecify.nullness.Nullable Object obj2 = null;",
" private final @org.jspecify.annotations.Nullable Object obj2 = null;",
" class Nullable {}",
"}")
.doTest();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -177,7 +177,7 @@ public void positiveNullMarkedOtherPackageAggressive() {
aggressiveHelper
.addSourceLines(
"Foo.java",
"import org.jspecify.nullness.NullMarked;",
"import org.jspecify.annotations.NullMarked;",
"@NullMarked",
"class Foo {",
" void consume(String s) {}",
Expand All @@ -194,7 +194,7 @@ public void negativeNullMarkedNonComGoogleCommonPackageConservative() {
conservativeHelper
.addSourceLines(
"Foo.java",
"import org.jspecify.nullness.NullMarked;",
"import org.jspecify.annotations.NullMarked;",
"@NullMarked",
"class Foo {",
" void consume(String s) {}",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -840,7 +840,7 @@ public void removeSuppressWarnings_removeNullnessReturnWarning() {
.addOutputLines(
"com/google/errorprone/bugpatterns/nullness/LiteralNullReturnTest.java",
"package com.google.errorprone.bugpatterns.nullness;",
"import org.jspecify.nullness.Nullable;",
"import org.jspecify.annotations.Nullable;",
"public class LiteralNullReturnTest {",
"",
" public @Nullable String getMessage(boolean b) {",
Expand Down Expand Up @@ -1689,7 +1689,7 @@ public void nonAnnotationNullable() {
.addOutputLines(
"out/Test.java",
"class T {",
" @org.jspecify.nullness.Nullable private final Object method(boolean b) { return b ?"
" @org.jspecify.annotations.Nullable private final Object method(boolean b) { return b ?"
+ " null : 0; }",
" class Nullable {}",
"}")
Expand All @@ -1712,7 +1712,7 @@ public void multipleNullReturns() {
"}")
.addOutputLines(
"out/Test.java",
"import org.jspecify.nullness.Nullable;",
"import org.jspecify.annotations.Nullable;",
"class T {",
" private final @Nullable Object method(boolean b) {",
" if (b) {",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -334,7 +334,7 @@ public void positiveConservativeNullMarked() {
.addSourceLines(
"Test.java",
"import javax.annotation.Nullable;",
"import org.jspecify.nullness.NullMarked;",
"import org.jspecify.annotations.NullMarked;",
"@NullMarked",
"class Test {",
" // BUG: Diagnostic contains: @Nullable",
Expand Down
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@
<nexus-staging-maven-plugin.version>1.6.13</nexus-staging-maven-plugin.version>
<protobuf.version>3.19.6</protobuf.version>
<grpc.version>1.43.3</grpc.version>
<jspecify.version>0.2.0</jspecify.version>
<jspecify.version>0.3.0</jspecify.version>
<guice.version>5.1.0</guice.version>
</properties>

Expand Down
Loading