aboutsummaryrefslogtreecommitdiff
path: root/java
diff options
context:
space:
mode:
authorLiam Miller-Cushon <cushon@google.com>2021-09-16 17:53:37 -0700
committerJavac Team <javac-team+copybara@google.com>2021-09-16 17:54:11 -0700
commit7903a8524894e0e945884866ea2be40c509a4b35 (patch)
treea5554a96a8a6f40b8e7483ebcb9a6c8576c0a34c /java
parent86c0940daf791d769e4f456d50a6473b7ed8cb58 (diff)
downloadturbine-7903a8524894e0e945884866ea2be40c509a4b35.tar.gz
Finish migrating to JSpecify annotations
PiperOrigin-RevId: 397209445
Diffstat (limited to 'java')
-rw-r--r--java/com/google/common/escape/package-info.java1
-rw-r--r--java/com/google/turbine/binder/Binder.java2
-rw-r--r--java/com/google/turbine/binder/ClassPath.java2
-rw-r--r--java/com/google/turbine/binder/ClassPathBinder.java2
-rw-r--r--java/com/google/turbine/binder/ConstBinder.java2
-rw-r--r--java/com/google/turbine/binder/ConstEvaluator.java2
-rw-r--r--java/com/google/turbine/binder/CtSymClassBinder.java2
-rw-r--r--java/com/google/turbine/binder/FileManagerClassBinder.java2
-rw-r--r--java/com/google/turbine/binder/HierarchyBinder.java2
-rw-r--r--java/com/google/turbine/binder/JimageClassBinder.java2
-rw-r--r--java/com/google/turbine/binder/Processing.java2
-rw-r--r--java/com/google/turbine/binder/Resolve.java2
-rw-r--r--java/com/google/turbine/binder/TypeBinder.java2
-rw-r--r--java/com/google/turbine/binder/bound/AnnotationMetadata.java2
-rw-r--r--java/com/google/turbine/binder/bound/BoundClass.java2
-rw-r--r--java/com/google/turbine/binder/bound/EnumConstantValue.java2
-rw-r--r--java/com/google/turbine/binder/bound/HeaderBoundClass.java2
-rw-r--r--java/com/google/turbine/binder/bound/ModuleInfo.java2
-rw-r--r--java/com/google/turbine/binder/bound/PackageSourceBoundClass.java2
-rw-r--r--java/com/google/turbine/binder/bound/SourceBoundClass.java2
-rw-r--r--java/com/google/turbine/binder/bound/SourceHeaderBoundClass.java2
-rw-r--r--java/com/google/turbine/binder/bound/SourceModuleInfo.java2
-rw-r--r--java/com/google/turbine/binder/bound/SourceTypeBoundClass.java2
-rw-r--r--java/com/google/turbine/binder/bound/TurbineAnnotationValue.java2
-rw-r--r--java/com/google/turbine/binder/bound/TurbineClassValue.java2
-rw-r--r--java/com/google/turbine/binder/bound/TypeBoundClass.java2
-rw-r--r--java/com/google/turbine/binder/bound/package-info.java1
-rw-r--r--java/com/google/turbine/binder/bytecode/BytecodeBoundClass.java2
-rw-r--r--java/com/google/turbine/binder/bytecode/package-info.java1
-rw-r--r--java/com/google/turbine/binder/env/CompoundEnv.java2
-rw-r--r--java/com/google/turbine/binder/env/Env.java2
-rw-r--r--java/com/google/turbine/binder/env/LazyEnv.java2
-rw-r--r--java/com/google/turbine/binder/env/SimpleEnv.java2
-rw-r--r--java/com/google/turbine/binder/env/package-info.java1
-rw-r--r--java/com/google/turbine/binder/lookup/CanonicalSymbolResolver.java2
-rw-r--r--java/com/google/turbine/binder/lookup/CompoundScope.java2
-rw-r--r--java/com/google/turbine/binder/lookup/CompoundTopLevelIndex.java2
-rw-r--r--java/com/google/turbine/binder/lookup/ImportIndex.java2
-rw-r--r--java/com/google/turbine/binder/lookup/ImportScope.java2
-rw-r--r--java/com/google/turbine/binder/lookup/MemberImportIndex.java2
-rw-r--r--java/com/google/turbine/binder/lookup/PackageScope.java2
-rw-r--r--java/com/google/turbine/binder/lookup/Scope.java2
-rw-r--r--java/com/google/turbine/binder/lookup/SimpleTopLevelIndex.java2
-rw-r--r--java/com/google/turbine/binder/lookup/TopLevelIndex.java2
-rw-r--r--java/com/google/turbine/binder/lookup/WildImportIndex.java2
-rw-r--r--java/com/google/turbine/binder/lookup/package-info.java1
-rw-r--r--java/com/google/turbine/binder/package-info.java1
-rw-r--r--java/com/google/turbine/binder/sym/ClassSymbol.java2
-rw-r--r--java/com/google/turbine/binder/sym/FieldSymbol.java2
-rw-r--r--java/com/google/turbine/binder/sym/MethodSymbol.java2
-rw-r--r--java/com/google/turbine/binder/sym/ModuleSymbol.java2
-rw-r--r--java/com/google/turbine/binder/sym/PackageSymbol.java2
-rw-r--r--java/com/google/turbine/binder/sym/ParamSymbol.java2
-rw-r--r--java/com/google/turbine/binder/sym/TyVarSymbol.java2
-rw-r--r--java/com/google/turbine/binder/sym/package-info.java1
-rw-r--r--java/com/google/turbine/bytecode/ClassFile.java2
-rw-r--r--java/com/google/turbine/bytecode/ClassReader.java2
-rw-r--r--java/com/google/turbine/bytecode/package-info.java1
-rw-r--r--java/com/google/turbine/bytecode/sig/Sig.java2
-rw-r--r--java/com/google/turbine/bytecode/sig/package-info.java1
-rw-r--r--java/com/google/turbine/deps/Transitive.java2
-rw-r--r--java/com/google/turbine/diag/SourceFile.java2
-rw-r--r--java/com/google/turbine/diag/TurbineDiagnostic.java2
-rw-r--r--java/com/google/turbine/lower/Lower.java2
-rw-r--r--java/com/google/turbine/lower/LowerSignature.java2
-rw-r--r--java/com/google/turbine/model/Const.java2
-rw-r--r--java/com/google/turbine/options/TurbineOptions.java2
-rw-r--r--java/com/google/turbine/options/package-info.java1
-rw-r--r--java/com/google/turbine/parse/ConstExpressionParser.java2
-rw-r--r--java/com/google/turbine/parse/Parser.java2
-rw-r--r--java/com/google/turbine/parse/StreamLexer.java2
-rw-r--r--java/com/google/turbine/processing/TurbineAnnotationMirror.java2
-rw-r--r--java/com/google/turbine/processing/TurbineElement.java2
-rw-r--r--java/com/google/turbine/processing/TurbineMessager.java2
-rw-r--r--java/com/google/turbine/processing/TurbineName.java2
-rw-r--r--java/com/google/turbine/processing/TurbineProcessingEnvironment.java2
-rw-r--r--java/com/google/turbine/processing/TurbineTypeMirror.java2
-rw-r--r--java/com/google/turbine/processing/TurbineTypes.java2
-rw-r--r--java/com/google/turbine/tree/Pretty.java2
-rw-r--r--java/com/google/turbine/tree/Tree.java2
-rw-r--r--java/com/google/turbine/tree/package-info.java1
-rw-r--r--java/com/google/turbine/type/AnnoInfo.java2
-rw-r--r--java/com/google/turbine/type/Type.java2
-rw-r--r--java/com/google/turbine/types/Canonicalize.java2
84 files changed, 84 insertions, 73 deletions
diff --git a/java/com/google/common/escape/package-info.java b/java/com/google/common/escape/package-info.java
index 1683da4..b69b34e 100644
--- a/java/com/google/common/escape/package-info.java
+++ b/java/com/google/common/escape/package-info.java
@@ -15,4 +15,5 @@
*/
@com.google.errorprone.annotations.CheckReturnValue
+@org.jspecify.nullness.NullMarked
package com.google.common.escape;
diff --git a/java/com/google/turbine/binder/Binder.java b/java/com/google/turbine/binder/Binder.java
index 9ac76f5..2916a81 100644
--- a/java/com/google/turbine/binder/Binder.java
+++ b/java/com/google/turbine/binder/Binder.java
@@ -69,7 +69,7 @@ import com.google.turbine.type.Type;
import java.time.Duration;
import java.util.Optional;
import javax.annotation.processing.Processor;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** The entry point for analysis. */
public final class Binder {
diff --git a/java/com/google/turbine/binder/ClassPath.java b/java/com/google/turbine/binder/ClassPath.java
index e2cc30e..eb78099 100644
--- a/java/com/google/turbine/binder/ClassPath.java
+++ b/java/com/google/turbine/binder/ClassPath.java
@@ -23,7 +23,7 @@ import com.google.turbine.binder.env.Env;
import com.google.turbine.binder.lookup.TopLevelIndex;
import com.google.turbine.binder.sym.ClassSymbol;
import com.google.turbine.binder.sym.ModuleSymbol;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* A compilation classpath, e.g. the user or platform class path. May be backed by a search path of
diff --git a/java/com/google/turbine/binder/ClassPathBinder.java b/java/com/google/turbine/binder/ClassPathBinder.java
index ba8cd8a..1c41e96 100644
--- a/java/com/google/turbine/binder/ClassPathBinder.java
+++ b/java/com/google/turbine/binder/ClassPathBinder.java
@@ -36,7 +36,7 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.Map;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Sets up an environment for symbols on the classpath. */
public final class ClassPathBinder {
diff --git a/java/com/google/turbine/binder/ConstBinder.java b/java/com/google/turbine/binder/ConstBinder.java
index 96c03db..5f26ddc 100644
--- a/java/com/google/turbine/binder/ConstBinder.java
+++ b/java/com/google/turbine/binder/ConstBinder.java
@@ -57,7 +57,7 @@ import com.google.turbine.type.Type.WildUnboundedTy;
import com.google.turbine.type.Type.WildUpperBoundedTy;
import java.lang.annotation.RetentionPolicy;
import java.util.Map;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Binding pass to evaluate constant expressions. */
public class ConstBinder {
diff --git a/java/com/google/turbine/binder/ConstEvaluator.java b/java/com/google/turbine/binder/ConstEvaluator.java
index 1569e0b..d26667d 100644
--- a/java/com/google/turbine/binder/ConstEvaluator.java
+++ b/java/com/google/turbine/binder/ConstEvaluator.java
@@ -74,7 +74,7 @@ import java.util.ArrayDeque;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* Constant expression evaluation.
diff --git a/java/com/google/turbine/binder/CtSymClassBinder.java b/java/com/google/turbine/binder/CtSymClassBinder.java
index 2ba57be..f687de9 100644
--- a/java/com/google/turbine/binder/CtSymClassBinder.java
+++ b/java/com/google/turbine/binder/CtSymClassBinder.java
@@ -42,7 +42,7 @@ import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.HashMap;
import java.util.Map;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Constructs a platform {@link ClassPath} from the current JDK's ct.sym file. */
public final class CtSymClassBinder {
diff --git a/java/com/google/turbine/binder/FileManagerClassBinder.java b/java/com/google/turbine/binder/FileManagerClassBinder.java
index f5a2b61..d36d2d8 100644
--- a/java/com/google/turbine/binder/FileManagerClassBinder.java
+++ b/java/com/google/turbine/binder/FileManagerClassBinder.java
@@ -40,7 +40,7 @@ import javax.tools.FileObject;
import javax.tools.JavaFileObject;
import javax.tools.StandardJavaFileManager;
import javax.tools.StandardLocation;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* Binds a {@link StandardJavaFileManager} to an {@link ClassPath}. This can be used to share a
diff --git a/java/com/google/turbine/binder/HierarchyBinder.java b/java/com/google/turbine/binder/HierarchyBinder.java
index 55b24da..2d33613 100644
--- a/java/com/google/turbine/binder/HierarchyBinder.java
+++ b/java/com/google/turbine/binder/HierarchyBinder.java
@@ -34,7 +34,7 @@ import com.google.turbine.model.TurbineTyKind;
import com.google.turbine.tree.Tree;
import com.google.turbine.tree.Tree.ClassTy;
import java.util.ArrayDeque;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Type hierarchy binding. */
public class HierarchyBinder {
diff --git a/java/com/google/turbine/binder/JimageClassBinder.java b/java/com/google/turbine/binder/JimageClassBinder.java
index 87d0640..0c17f2f 100644
--- a/java/com/google/turbine/binder/JimageClassBinder.java
+++ b/java/com/google/turbine/binder/JimageClassBinder.java
@@ -53,7 +53,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Constructs a platform {@link ClassPath} from the current JDK's jimage file using jrtfs. */
public class JimageClassBinder {
diff --git a/java/com/google/turbine/binder/Processing.java b/java/com/google/turbine/binder/Processing.java
index 9bbf213..5e66577 100644
--- a/java/com/google/turbine/binder/Processing.java
+++ b/java/com/google/turbine/binder/Processing.java
@@ -74,7 +74,7 @@ import javax.annotation.processing.Processor;
import javax.lang.model.SourceVersion;
import javax.lang.model.element.TypeElement;
import javax.tools.Diagnostic;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Top level annotation processing logic, see also {@link Binder}. */
public class Processing {
diff --git a/java/com/google/turbine/binder/Resolve.java b/java/com/google/turbine/binder/Resolve.java
index cede5dd..6b76389 100644
--- a/java/com/google/turbine/binder/Resolve.java
+++ b/java/com/google/turbine/binder/Resolve.java
@@ -31,7 +31,7 @@ import com.google.turbine.tree.Tree;
import java.util.HashSet;
import java.util.Objects;
import java.util.Set;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Qualified name resolution. */
public final class Resolve {
diff --git a/java/com/google/turbine/binder/TypeBinder.java b/java/com/google/turbine/binder/TypeBinder.java
index 8cda0e3..ecb8ea7 100644
--- a/java/com/google/turbine/binder/TypeBinder.java
+++ b/java/com/google/turbine/binder/TypeBinder.java
@@ -63,7 +63,7 @@ import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Type binding. */
public class TypeBinder {
diff --git a/java/com/google/turbine/binder/bound/AnnotationMetadata.java b/java/com/google/turbine/binder/bound/AnnotationMetadata.java
index c83eb0f..5ae04b0 100644
--- a/java/com/google/turbine/binder/bound/AnnotationMetadata.java
+++ b/java/com/google/turbine/binder/bound/AnnotationMetadata.java
@@ -23,7 +23,7 @@ import com.google.turbine.binder.sym.ClassSymbol;
import com.google.turbine.model.TurbineElementType;
import java.lang.annotation.RetentionPolicy;
import java.util.EnumSet;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* Annotation metadata, e.g. from {@link java.lang.annotation.Target}, {@link
diff --git a/java/com/google/turbine/binder/bound/BoundClass.java b/java/com/google/turbine/binder/bound/BoundClass.java
index 61dee0f..1e29b42 100644
--- a/java/com/google/turbine/binder/bound/BoundClass.java
+++ b/java/com/google/turbine/binder/bound/BoundClass.java
@@ -19,7 +19,7 @@ package com.google.turbine.binder.bound;
import com.google.common.collect.ImmutableMap;
import com.google.turbine.binder.sym.ClassSymbol;
import com.google.turbine.model.TurbineTyKind;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* The initial bound tree representation.
diff --git a/java/com/google/turbine/binder/bound/EnumConstantValue.java b/java/com/google/turbine/binder/bound/EnumConstantValue.java
index 5bdcd4a..20a5756 100644
--- a/java/com/google/turbine/binder/bound/EnumConstantValue.java
+++ b/java/com/google/turbine/binder/bound/EnumConstantValue.java
@@ -18,7 +18,7 @@ package com.google.turbine.binder.bound;
import com.google.turbine.binder.sym.FieldSymbol;
import com.google.turbine.model.Const;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** An enum constant. */
public class EnumConstantValue extends Const {
diff --git a/java/com/google/turbine/binder/bound/HeaderBoundClass.java b/java/com/google/turbine/binder/bound/HeaderBoundClass.java
index 45c87ac..9658016 100644
--- a/java/com/google/turbine/binder/bound/HeaderBoundClass.java
+++ b/java/com/google/turbine/binder/bound/HeaderBoundClass.java
@@ -20,7 +20,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.turbine.binder.sym.ClassSymbol;
import com.google.turbine.binder.sym.TyVarSymbol;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A bound node that augments {@link BoundClass} with superclasses and interfaces. */
public interface HeaderBoundClass extends BoundClass {
diff --git a/java/com/google/turbine/binder/bound/ModuleInfo.java b/java/com/google/turbine/binder/bound/ModuleInfo.java
index f3990fa..5eeed04 100644
--- a/java/com/google/turbine/binder/bound/ModuleInfo.java
+++ b/java/com/google/turbine/binder/bound/ModuleInfo.java
@@ -19,7 +19,7 @@ package com.google.turbine.binder.bound;
import com.google.common.collect.ImmutableList;
import com.google.turbine.binder.sym.ClassSymbol;
import com.google.turbine.type.AnnoInfo;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A bound module declaration (see JLS §7.7). */
public class ModuleInfo {
diff --git a/java/com/google/turbine/binder/bound/PackageSourceBoundClass.java b/java/com/google/turbine/binder/bound/PackageSourceBoundClass.java
index 0fe80ad..77832f9 100644
--- a/java/com/google/turbine/binder/bound/PackageSourceBoundClass.java
+++ b/java/com/google/turbine/binder/bound/PackageSourceBoundClass.java
@@ -23,7 +23,7 @@ import com.google.turbine.binder.sym.ClassSymbol;
import com.google.turbine.diag.SourceFile;
import com.google.turbine.model.TurbineTyKind;
import com.google.turbine.tree.Tree;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A {@link BoundClass} with shared lookup scopes for the current compilation unit and package. */
public class PackageSourceBoundClass implements BoundClass {
diff --git a/java/com/google/turbine/binder/bound/SourceBoundClass.java b/java/com/google/turbine/binder/bound/SourceBoundClass.java
index a05d318..7a6f33f 100644
--- a/java/com/google/turbine/binder/bound/SourceBoundClass.java
+++ b/java/com/google/turbine/binder/bound/SourceBoundClass.java
@@ -20,7 +20,7 @@ import com.google.common.collect.ImmutableMap;
import com.google.turbine.binder.sym.ClassSymbol;
import com.google.turbine.model.TurbineTyKind;
import com.google.turbine.tree.Tree;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A {@link BoundClass} that corresponds to a source file being compiled. */
public class SourceBoundClass implements BoundClass {
diff --git a/java/com/google/turbine/binder/bound/SourceHeaderBoundClass.java b/java/com/google/turbine/binder/bound/SourceHeaderBoundClass.java
index 5dfa808..210ff0b 100644
--- a/java/com/google/turbine/binder/bound/SourceHeaderBoundClass.java
+++ b/java/com/google/turbine/binder/bound/SourceHeaderBoundClass.java
@@ -25,7 +25,7 @@ import com.google.turbine.binder.sym.TyVarSymbol;
import com.google.turbine.diag.SourceFile;
import com.google.turbine.model.TurbineTyKind;
import com.google.turbine.tree.Tree;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A {@link HeaderBoundClass} that corresponds to a source file being compiled. */
public class SourceHeaderBoundClass implements HeaderBoundClass {
diff --git a/java/com/google/turbine/binder/bound/SourceModuleInfo.java b/java/com/google/turbine/binder/bound/SourceModuleInfo.java
index 1163e9f..66ba0e4 100644
--- a/java/com/google/turbine/binder/bound/SourceModuleInfo.java
+++ b/java/com/google/turbine/binder/bound/SourceModuleInfo.java
@@ -24,7 +24,7 @@ import com.google.turbine.binder.bound.ModuleInfo.RequireInfo;
import com.google.turbine.binder.bound.ModuleInfo.UseInfo;
import com.google.turbine.diag.SourceFile;
import com.google.turbine.type.AnnoInfo;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A {@link ModuleInfo} that corresponds to a source file being compiled. */
public class SourceModuleInfo extends ModuleInfo {
diff --git a/java/com/google/turbine/binder/bound/SourceTypeBoundClass.java b/java/com/google/turbine/binder/bound/SourceTypeBoundClass.java
index deceb42..cadd141 100644
--- a/java/com/google/turbine/binder/bound/SourceTypeBoundClass.java
+++ b/java/com/google/turbine/binder/bound/SourceTypeBoundClass.java
@@ -29,7 +29,7 @@ import com.google.turbine.type.AnnoInfo;
import com.google.turbine.type.Type;
import com.google.turbine.type.Type.ClassTy;
import com.google.turbine.type.Type.TyKind;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A HeaderBoundClass for classes compiled from source. */
public class SourceTypeBoundClass implements TypeBoundClass {
diff --git a/java/com/google/turbine/binder/bound/TurbineAnnotationValue.java b/java/com/google/turbine/binder/bound/TurbineAnnotationValue.java
index e502ff2..b6737d6 100644
--- a/java/com/google/turbine/binder/bound/TurbineAnnotationValue.java
+++ b/java/com/google/turbine/binder/bound/TurbineAnnotationValue.java
@@ -20,7 +20,7 @@ import com.google.common.collect.ImmutableMap;
import com.google.turbine.binder.sym.ClassSymbol;
import com.google.turbine.model.Const;
import com.google.turbine.type.AnnoInfo;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** An annotation literal constant. */
public class TurbineAnnotationValue extends Const {
diff --git a/java/com/google/turbine/binder/bound/TurbineClassValue.java b/java/com/google/turbine/binder/bound/TurbineClassValue.java
index b7a17a7..c6ba6ef 100644
--- a/java/com/google/turbine/binder/bound/TurbineClassValue.java
+++ b/java/com/google/turbine/binder/bound/TurbineClassValue.java
@@ -19,7 +19,7 @@ package com.google.turbine.binder.bound;
import com.google.turbine.model.Const;
import com.google.turbine.type.Type;
import java.util.Objects;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A class literal constant. */
public class TurbineClassValue extends Const {
diff --git a/java/com/google/turbine/binder/bound/TypeBoundClass.java b/java/com/google/turbine/binder/bound/TypeBoundClass.java
index cf34ef1..5a14594 100644
--- a/java/com/google/turbine/binder/bound/TypeBoundClass.java
+++ b/java/com/google/turbine/binder/bound/TypeBoundClass.java
@@ -31,7 +31,7 @@ import com.google.turbine.type.AnnoInfo;
import com.google.turbine.type.Type;
import com.google.turbine.type.Type.IntersectionTy;
import com.google.turbine.type.Type.MethodTy;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A bound node that augments {@link HeaderBoundClass} with type information. */
public interface TypeBoundClass extends HeaderBoundClass {
diff --git a/java/com/google/turbine/binder/bound/package-info.java b/java/com/google/turbine/binder/bound/package-info.java
index 99a18d6..8839101 100644
--- a/java/com/google/turbine/binder/bound/package-info.java
+++ b/java/com/google/turbine/binder/bound/package-info.java
@@ -15,4 +15,5 @@
*/
@com.google.errorprone.annotations.CheckReturnValue
+@org.jspecify.nullness.NullMarked
package com.google.turbine.binder.bound;
diff --git a/java/com/google/turbine/binder/bytecode/BytecodeBoundClass.java b/java/com/google/turbine/binder/bytecode/BytecodeBoundClass.java
index 4a81316..83ecc0a 100644
--- a/java/com/google/turbine/binder/bytecode/BytecodeBoundClass.java
+++ b/java/com/google/turbine/binder/bytecode/BytecodeBoundClass.java
@@ -58,7 +58,7 @@ import com.google.turbine.type.Type.IntersectionTy;
import java.lang.annotation.RetentionPolicy;
import java.util.Map;
import java.util.function.Function;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* A bound class backed by a class file.
diff --git a/java/com/google/turbine/binder/bytecode/package-info.java b/java/com/google/turbine/binder/bytecode/package-info.java
index 23c59f0..d2d9708 100644
--- a/java/com/google/turbine/binder/bytecode/package-info.java
+++ b/java/com/google/turbine/binder/bytecode/package-info.java
@@ -14,4 +14,5 @@
* limitations under the License.
*/
+@org.jspecify.nullness.NullMarked
package com.google.turbine.binder.bytecode;
diff --git a/java/com/google/turbine/binder/env/CompoundEnv.java b/java/com/google/turbine/binder/env/CompoundEnv.java
index 4b7cce6..391a2c3 100644
--- a/java/com/google/turbine/binder/env/CompoundEnv.java
+++ b/java/com/google/turbine/binder/env/CompoundEnv.java
@@ -19,7 +19,7 @@ package com.google.turbine.binder.env;
import static java.util.Objects.requireNonNull;
import com.google.turbine.binder.sym.Symbol;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** An {@link Env} that chains two existing envs together. */
public class CompoundEnv<S extends Symbol, V> implements Env<S, V> {
diff --git a/java/com/google/turbine/binder/env/Env.java b/java/com/google/turbine/binder/env/Env.java
index 17908e7..463c65d 100644
--- a/java/com/google/turbine/binder/env/Env.java
+++ b/java/com/google/turbine/binder/env/Env.java
@@ -18,7 +18,7 @@ package com.google.turbine.binder.env;
import com.google.turbine.binder.sym.ClassSymbol;
import com.google.turbine.binder.sym.Symbol;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* An environment that maps {@link Symbol}s {@code S} to bound nodes {@code V}.
diff --git a/java/com/google/turbine/binder/env/LazyEnv.java b/java/com/google/turbine/binder/env/LazyEnv.java
index 35377a9..0b311f7 100644
--- a/java/com/google/turbine/binder/env/LazyEnv.java
+++ b/java/com/google/turbine/binder/env/LazyEnv.java
@@ -22,7 +22,7 @@ import com.google.turbine.binder.sym.Symbol;
import java.util.LinkedHashMap;
import java.util.LinkedHashSet;
import java.util.Map;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* An env that permits an analysis pass to access information about symbols from the current pass,
diff --git a/java/com/google/turbine/binder/env/SimpleEnv.java b/java/com/google/turbine/binder/env/SimpleEnv.java
index d3537bf..9de5c9f 100644
--- a/java/com/google/turbine/binder/env/SimpleEnv.java
+++ b/java/com/google/turbine/binder/env/SimpleEnv.java
@@ -21,7 +21,7 @@ import com.google.errorprone.annotations.CanIgnoreReturnValue;
import com.google.turbine.binder.sym.Symbol;
import java.util.LinkedHashMap;
import java.util.Map;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A simple {@link ImmutableMap}-backed {@link Env}. */
public class SimpleEnv<K extends Symbol, V> implements Env<K, V> {
diff --git a/java/com/google/turbine/binder/env/package-info.java b/java/com/google/turbine/binder/env/package-info.java
index e468029..fa57245 100644
--- a/java/com/google/turbine/binder/env/package-info.java
+++ b/java/com/google/turbine/binder/env/package-info.java
@@ -15,4 +15,5 @@
*/
@com.google.errorprone.annotations.CheckReturnValue
+@org.jspecify.nullness.NullMarked
package com.google.turbine.binder.env;
diff --git a/java/com/google/turbine/binder/lookup/CanonicalSymbolResolver.java b/java/com/google/turbine/binder/lookup/CanonicalSymbolResolver.java
index d85a273..d44f4e4 100644
--- a/java/com/google/turbine/binder/lookup/CanonicalSymbolResolver.java
+++ b/java/com/google/turbine/binder/lookup/CanonicalSymbolResolver.java
@@ -18,7 +18,7 @@ package com.google.turbine.binder.lookup;
import com.google.turbine.binder.sym.ClassSymbol;
import com.google.turbine.tree.Tree;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Canonical type resolution. Breaks a circular dependency between binding and import handling. */
public interface CanonicalSymbolResolver extends ImportScope.ResolveFunction {
diff --git a/java/com/google/turbine/binder/lookup/CompoundScope.java b/java/com/google/turbine/binder/lookup/CompoundScope.java
index 5b36288..17b923b 100644
--- a/java/com/google/turbine/binder/lookup/CompoundScope.java
+++ b/java/com/google/turbine/binder/lookup/CompoundScope.java
@@ -18,7 +18,7 @@ package com.google.turbine.binder.lookup;
import static com.google.common.base.Preconditions.checkNotNull;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A {@link Scope} that chains other scopes together. */
public class CompoundScope implements Scope {
diff --git a/java/com/google/turbine/binder/lookup/CompoundTopLevelIndex.java b/java/com/google/turbine/binder/lookup/CompoundTopLevelIndex.java
index 1d07797..16f34c3 100644
--- a/java/com/google/turbine/binder/lookup/CompoundTopLevelIndex.java
+++ b/java/com/google/turbine/binder/lookup/CompoundTopLevelIndex.java
@@ -19,7 +19,7 @@ package com.google.turbine.binder.lookup;
import static com.google.common.base.Preconditions.checkNotNull;
import com.google.common.collect.ImmutableList;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A {@link TopLevelIndex} that aggregates multiple indices into one. */
// Note: this implementation doesn't detect if the indices contain incompatible information,
diff --git a/java/com/google/turbine/binder/lookup/ImportIndex.java b/java/com/google/turbine/binder/lookup/ImportIndex.java
index 17a1caa..bcd9366 100644
--- a/java/com/google/turbine/binder/lookup/ImportIndex.java
+++ b/java/com/google/turbine/binder/lookup/ImportIndex.java
@@ -31,7 +31,7 @@ import com.google.turbine.tree.Tree.Ident;
import com.google.turbine.tree.Tree.ImportDecl;
import java.util.HashMap;
import java.util.Map;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* A scope that provides entries for the single-type imports in a compilation unit.
diff --git a/java/com/google/turbine/binder/lookup/ImportScope.java b/java/com/google/turbine/binder/lookup/ImportScope.java
index 8aadda4..a33a8e2 100644
--- a/java/com/google/turbine/binder/lookup/ImportScope.java
+++ b/java/com/google/turbine/binder/lookup/ImportScope.java
@@ -18,7 +18,7 @@ package com.google.turbine.binder.lookup;
import com.google.turbine.binder.sym.ClassSymbol;
import com.google.turbine.tree.Tree;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* A scope for imports. Non-canonical imports depend on hierarchy analysis, so to break the cycle we
diff --git a/java/com/google/turbine/binder/lookup/MemberImportIndex.java b/java/com/google/turbine/binder/lookup/MemberImportIndex.java
index 4155cfa..d825396 100644
--- a/java/com/google/turbine/binder/lookup/MemberImportIndex.java
+++ b/java/com/google/turbine/binder/lookup/MemberImportIndex.java
@@ -30,7 +30,7 @@ import com.google.turbine.tree.Tree.ImportDecl;
import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** An index for statically imported members, in particular constant variables. */
public class MemberImportIndex {
diff --git a/java/com/google/turbine/binder/lookup/PackageScope.java b/java/com/google/turbine/binder/lookup/PackageScope.java
index 695e802..94e950f 100644
--- a/java/com/google/turbine/binder/lookup/PackageScope.java
+++ b/java/com/google/turbine/binder/lookup/PackageScope.java
@@ -18,7 +18,7 @@ package com.google.turbine.binder.lookup;
import com.google.common.collect.Iterables;
import com.google.turbine.binder.sym.ClassSymbol;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* A scope that corresponds to a particular package, which supports iteration over its enclosed
diff --git a/java/com/google/turbine/binder/lookup/Scope.java b/java/com/google/turbine/binder/lookup/Scope.java
index 12466f4..eb9f5cb 100644
--- a/java/com/google/turbine/binder/lookup/Scope.java
+++ b/java/com/google/turbine/binder/lookup/Scope.java
@@ -16,7 +16,7 @@
package com.google.turbine.binder.lookup;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A scope that defines types, and supports qualified name resolution. */
public interface Scope {
diff --git a/java/com/google/turbine/binder/lookup/SimpleTopLevelIndex.java b/java/com/google/turbine/binder/lookup/SimpleTopLevelIndex.java
index 1e2e465..4de0820 100644
--- a/java/com/google/turbine/binder/lookup/SimpleTopLevelIndex.java
+++ b/java/com/google/turbine/binder/lookup/SimpleTopLevelIndex.java
@@ -23,7 +23,7 @@ import com.google.turbine.binder.sym.ClassSymbol;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* An index of canonical type names where all members are known statically.
diff --git a/java/com/google/turbine/binder/lookup/TopLevelIndex.java b/java/com/google/turbine/binder/lookup/TopLevelIndex.java
index 77678f5..049ac5c 100644
--- a/java/com/google/turbine/binder/lookup/TopLevelIndex.java
+++ b/java/com/google/turbine/binder/lookup/TopLevelIndex.java
@@ -16,7 +16,7 @@
package com.google.turbine.binder.lookup;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* An index of canonical type names.
diff --git a/java/com/google/turbine/binder/lookup/WildImportIndex.java b/java/com/google/turbine/binder/lookup/WildImportIndex.java
index 6709640..8b4bab1 100644
--- a/java/com/google/turbine/binder/lookup/WildImportIndex.java
+++ b/java/com/google/turbine/binder/lookup/WildImportIndex.java
@@ -22,7 +22,7 @@ import com.google.common.collect.ImmutableList;
import com.google.turbine.binder.sym.ClassSymbol;
import com.google.turbine.tree.Tree;
import com.google.turbine.tree.Tree.ImportDecl;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* A scope that provides best-effort lookup for on-demand imported types in a compilation unit.
diff --git a/java/com/google/turbine/binder/lookup/package-info.java b/java/com/google/turbine/binder/lookup/package-info.java
index b3ec8d0..7784138 100644
--- a/java/com/google/turbine/binder/lookup/package-info.java
+++ b/java/com/google/turbine/binder/lookup/package-info.java
@@ -15,4 +15,5 @@
*/
@com.google.errorprone.annotations.CheckReturnValue
+@org.jspecify.nullness.NullMarked
package com.google.turbine.binder.lookup;
diff --git a/java/com/google/turbine/binder/package-info.java b/java/com/google/turbine/binder/package-info.java
index bc3e320..9f550e0 100644
--- a/java/com/google/turbine/binder/package-info.java
+++ b/java/com/google/turbine/binder/package-info.java
@@ -15,4 +15,5 @@
*/
@com.google.errorprone.annotations.CheckReturnValue
+@org.jspecify.nullness.NullMarked
package com.google.turbine.binder;
diff --git a/java/com/google/turbine/binder/sym/ClassSymbol.java b/java/com/google/turbine/binder/sym/ClassSymbol.java
index 4e05767..45c9adf 100644
--- a/java/com/google/turbine/binder/sym/ClassSymbol.java
+++ b/java/com/google/turbine/binder/sym/ClassSymbol.java
@@ -17,7 +17,7 @@
package com.google.turbine.binder.sym;
import com.google.errorprone.annotations.Immutable;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* A class symbol.
diff --git a/java/com/google/turbine/binder/sym/FieldSymbol.java b/java/com/google/turbine/binder/sym/FieldSymbol.java
index 0b28209..1040500 100644
--- a/java/com/google/turbine/binder/sym/FieldSymbol.java
+++ b/java/com/google/turbine/binder/sym/FieldSymbol.java
@@ -18,7 +18,7 @@ package com.google.turbine.binder.sym;
import com.google.errorprone.annotations.Immutable;
import java.util.Objects;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A field symbol. */
@Immutable
diff --git a/java/com/google/turbine/binder/sym/MethodSymbol.java b/java/com/google/turbine/binder/sym/MethodSymbol.java
index 3aa0481..12c1aa5 100644
--- a/java/com/google/turbine/binder/sym/MethodSymbol.java
+++ b/java/com/google/turbine/binder/sym/MethodSymbol.java
@@ -18,7 +18,7 @@ package com.google.turbine.binder.sym;
import com.google.errorprone.annotations.Immutable;
import java.util.Objects;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A method symbol. */
@Immutable
diff --git a/java/com/google/turbine/binder/sym/ModuleSymbol.java b/java/com/google/turbine/binder/sym/ModuleSymbol.java
index ea3abce..4ce5c7a 100644
--- a/java/com/google/turbine/binder/sym/ModuleSymbol.java
+++ b/java/com/google/turbine/binder/sym/ModuleSymbol.java
@@ -17,7 +17,7 @@
package com.google.turbine.binder.sym;
import com.google.errorprone.annotations.Immutable;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A module symbol. */
@Immutable
diff --git a/java/com/google/turbine/binder/sym/PackageSymbol.java b/java/com/google/turbine/binder/sym/PackageSymbol.java
index 978371d..be071e0 100644
--- a/java/com/google/turbine/binder/sym/PackageSymbol.java
+++ b/java/com/google/turbine/binder/sym/PackageSymbol.java
@@ -17,7 +17,7 @@
package com.google.turbine.binder.sym;
import com.google.errorprone.annotations.Immutable;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A package symbol. */
@Immutable
diff --git a/java/com/google/turbine/binder/sym/ParamSymbol.java b/java/com/google/turbine/binder/sym/ParamSymbol.java
index 3fabe32..e939223 100644
--- a/java/com/google/turbine/binder/sym/ParamSymbol.java
+++ b/java/com/google/turbine/binder/sym/ParamSymbol.java
@@ -18,7 +18,7 @@ package com.google.turbine.binder.sym;
import com.google.errorprone.annotations.Immutable;
import java.util.Objects;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A parameter symbol. */
@Immutable
diff --git a/java/com/google/turbine/binder/sym/TyVarSymbol.java b/java/com/google/turbine/binder/sym/TyVarSymbol.java
index 27387b7..5ba0788 100644
--- a/java/com/google/turbine/binder/sym/TyVarSymbol.java
+++ b/java/com/google/turbine/binder/sym/TyVarSymbol.java
@@ -18,7 +18,7 @@ package com.google.turbine.binder.sym;
import com.google.errorprone.annotations.Immutable;
import java.util.Objects;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A type variable symbol. */
@Immutable
diff --git a/java/com/google/turbine/binder/sym/package-info.java b/java/com/google/turbine/binder/sym/package-info.java
index be153fc..96f3a87 100644
--- a/java/com/google/turbine/binder/sym/package-info.java
+++ b/java/com/google/turbine/binder/sym/package-info.java
@@ -15,4 +15,5 @@
*/
@com.google.errorprone.annotations.CheckReturnValue
+@org.jspecify.nullness.NullMarked
package com.google.turbine.binder.sym;
diff --git a/java/com/google/turbine/bytecode/ClassFile.java b/java/com/google/turbine/bytecode/ClassFile.java
index 141c145..2d79341 100644
--- a/java/com/google/turbine/bytecode/ClassFile.java
+++ b/java/com/google/turbine/bytecode/ClassFile.java
@@ -26,7 +26,7 @@ import java.util.ArrayDeque;
import java.util.Deque;
import java.util.List;
import java.util.Map;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A JVMS §4.1 ClassFile. */
public class ClassFile {
diff --git a/java/com/google/turbine/bytecode/ClassReader.java b/java/com/google/turbine/bytecode/ClassReader.java
index 5022ff7..3510d17 100644
--- a/java/com/google/turbine/bytecode/ClassReader.java
+++ b/java/com/google/turbine/bytecode/ClassReader.java
@@ -39,7 +39,7 @@ import com.google.turbine.model.Const;
import com.google.turbine.model.TurbineFlag;
import java.util.ArrayList;
import java.util.List;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A JVMS §4 class file reader. */
public class ClassReader {
diff --git a/java/com/google/turbine/bytecode/package-info.java b/java/com/google/turbine/bytecode/package-info.java
index 03c1664..3f0bb60 100644
--- a/java/com/google/turbine/bytecode/package-info.java
+++ b/java/com/google/turbine/bytecode/package-info.java
@@ -15,4 +15,5 @@
*/
@com.google.errorprone.annotations.CheckReturnValue
+@org.jspecify.nullness.NullMarked
package com.google.turbine.bytecode;
diff --git a/java/com/google/turbine/bytecode/sig/Sig.java b/java/com/google/turbine/bytecode/sig/Sig.java
index 2e4f154..99d98cf 100644
--- a/java/com/google/turbine/bytecode/sig/Sig.java
+++ b/java/com/google/turbine/bytecode/sig/Sig.java
@@ -18,7 +18,7 @@ package com.google.turbine.bytecode.sig;
import com.google.common.collect.ImmutableList;
import com.google.turbine.model.TurbineConstantTypeKind;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** JVMS 4.7.9.1 signatures. */
public final class Sig {
diff --git a/java/com/google/turbine/bytecode/sig/package-info.java b/java/com/google/turbine/bytecode/sig/package-info.java
index 9b109a3..c5f449e 100644
--- a/java/com/google/turbine/bytecode/sig/package-info.java
+++ b/java/com/google/turbine/bytecode/sig/package-info.java
@@ -15,4 +15,5 @@
*/
@com.google.errorprone.annotations.CheckReturnValue
+@org.jspecify.nullness.NullMarked
package com.google.turbine.bytecode.sig;
diff --git a/java/com/google/turbine/deps/Transitive.java b/java/com/google/turbine/deps/Transitive.java
index 75d23f6..673c372 100644
--- a/java/com/google/turbine/deps/Transitive.java
+++ b/java/com/google/turbine/deps/Transitive.java
@@ -33,7 +33,7 @@ import com.google.turbine.bytecode.ClassWriter;
import com.google.turbine.model.TurbineFlag;
import java.util.LinkedHashSet;
import java.util.Set;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* Collects the minimal compile-time API for symbols in the supertype closure of compiled classes.
diff --git a/java/com/google/turbine/diag/SourceFile.java b/java/com/google/turbine/diag/SourceFile.java
index ebc0f58..a7c3245 100644
--- a/java/com/google/turbine/diag/SourceFile.java
+++ b/java/com/google/turbine/diag/SourceFile.java
@@ -19,7 +19,7 @@ package com.google.turbine.diag;
import com.google.common.base.Supplier;
import com.google.common.base.Suppliers;
import java.util.Objects;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A source file. */
public class SourceFile {
diff --git a/java/com/google/turbine/diag/TurbineDiagnostic.java b/java/com/google/turbine/diag/TurbineDiagnostic.java
index a38c98f..1457868 100644
--- a/java/com/google/turbine/diag/TurbineDiagnostic.java
+++ b/java/com/google/turbine/diag/TurbineDiagnostic.java
@@ -27,7 +27,7 @@ import com.google.turbine.binder.sym.ClassSymbol;
import com.google.turbine.diag.TurbineError.ErrorKind;
import java.util.Objects;
import javax.tools.Diagnostic;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A compilation error. */
public class TurbineDiagnostic {
diff --git a/java/com/google/turbine/lower/Lower.java b/java/com/google/turbine/lower/Lower.java
index fa81d1d..0000ff6 100644
--- a/java/com/google/turbine/lower/Lower.java
+++ b/java/com/google/turbine/lower/Lower.java
@@ -84,7 +84,7 @@ import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Lowering from bound classes to bytecode. */
public class Lower {
diff --git a/java/com/google/turbine/lower/LowerSignature.java b/java/com/google/turbine/lower/LowerSignature.java
index de20f63..5dffbf8 100644
--- a/java/com/google/turbine/lower/LowerSignature.java
+++ b/java/com/google/turbine/lower/LowerSignature.java
@@ -46,7 +46,7 @@ import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Translator from {@link Type}s to {@link Sig}natures. */
public class LowerSignature {
diff --git a/java/com/google/turbine/model/Const.java b/java/com/google/turbine/model/Const.java
index 2916b07..bd90f59 100644
--- a/java/com/google/turbine/model/Const.java
+++ b/java/com/google/turbine/model/Const.java
@@ -21,7 +21,7 @@ import com.google.common.collect.ImmutableList;
import com.google.common.escape.SourceCodeEscapers;
import javax.lang.model.element.AnnotationValue;
import javax.lang.model.element.AnnotationValueVisitor;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* Compile-time constant expressions, including literals of primitive or String type, class
diff --git a/java/com/google/turbine/options/TurbineOptions.java b/java/com/google/turbine/options/TurbineOptions.java
index c104c54..a865371 100644
--- a/java/com/google/turbine/options/TurbineOptions.java
+++ b/java/com/google/turbine/options/TurbineOptions.java
@@ -20,7 +20,7 @@ import com.google.auto.value.AutoValue;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import java.util.Optional;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Header compilation options. */
@AutoValue
diff --git a/java/com/google/turbine/options/package-info.java b/java/com/google/turbine/options/package-info.java
index 9c12bf8..45bad5e 100644
--- a/java/com/google/turbine/options/package-info.java
+++ b/java/com/google/turbine/options/package-info.java
@@ -14,4 +14,5 @@
* limitations under the License.
*/
+@org.jspecify.nullness.NullMarked
package com.google.turbine.options;
diff --git a/java/com/google/turbine/parse/ConstExpressionParser.java b/java/com/google/turbine/parse/ConstExpressionParser.java
index 84bbf1d..bfdd8a1 100644
--- a/java/com/google/turbine/parse/ConstExpressionParser.java
+++ b/java/com/google/turbine/parse/ConstExpressionParser.java
@@ -32,7 +32,7 @@ import com.google.turbine.tree.Tree.Expression;
import com.google.turbine.tree.Tree.Ident;
import com.google.turbine.tree.TurbineOperatorKind;
import java.util.Optional;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A parser for compile-time constant expressions. */
public class ConstExpressionParser {
diff --git a/java/com/google/turbine/parse/Parser.java b/java/com/google/turbine/parse/Parser.java
index 77457b7..c26900f 100644
--- a/java/com/google/turbine/parse/Parser.java
+++ b/java/com/google/turbine/parse/Parser.java
@@ -63,7 +63,7 @@ import java.util.Deque;
import java.util.EnumSet;
import java.util.List;
import java.util.Optional;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* A parser for the subset of Java required for header compilation.
diff --git a/java/com/google/turbine/parse/StreamLexer.java b/java/com/google/turbine/parse/StreamLexer.java
index cc51002..b9f9c5c 100644
--- a/java/com/google/turbine/parse/StreamLexer.java
+++ b/java/com/google/turbine/parse/StreamLexer.java
@@ -22,7 +22,7 @@ import static com.google.turbine.parse.UnicodeEscapePreprocessor.ASCII_SUB;
import com.google.turbine.diag.SourceFile;
import com.google.turbine.diag.TurbineError;
import com.google.turbine.diag.TurbineError.ErrorKind;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A {@link Lexer} that streams input from a {@link UnicodeEscapePreprocessor}. */
public class StreamLexer implements Lexer {
diff --git a/java/com/google/turbine/processing/TurbineAnnotationMirror.java b/java/com/google/turbine/processing/TurbineAnnotationMirror.java
index a4779a4..010fa6c 100644
--- a/java/com/google/turbine/processing/TurbineAnnotationMirror.java
+++ b/java/com/google/turbine/processing/TurbineAnnotationMirror.java
@@ -45,7 +45,7 @@ import javax.lang.model.element.ExecutableElement;
import javax.lang.model.type.DeclaredType;
import javax.lang.model.type.ErrorType;
import javax.lang.model.type.TypeMirror;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* An implementation of {@link AnnotationMirror} and {@link AnnotationValue} backed by {@link
diff --git a/java/com/google/turbine/processing/TurbineElement.java b/java/com/google/turbine/processing/TurbineElement.java
index 1b33a99..fff27b7 100644
--- a/java/com/google/turbine/processing/TurbineElement.java
+++ b/java/com/google/turbine/processing/TurbineElement.java
@@ -79,7 +79,7 @@ import javax.lang.model.element.TypeElement;
import javax.lang.model.element.TypeParameterElement;
import javax.lang.model.element.VariableElement;
import javax.lang.model.type.TypeMirror;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** An {@link Element} implementation backed by a {@link Symbol}. */
@SuppressWarnings("nullness") // TODO(cushon): Address nullness diagnostics.
diff --git a/java/com/google/turbine/processing/TurbineMessager.java b/java/com/google/turbine/processing/TurbineMessager.java
index 9c333b2..37d6b18 100644
--- a/java/com/google/turbine/processing/TurbineMessager.java
+++ b/java/com/google/turbine/processing/TurbineMessager.java
@@ -42,7 +42,7 @@ import javax.lang.model.element.AnnotationMirror;
import javax.lang.model.element.AnnotationValue;
import javax.lang.model.element.Element;
import javax.tools.Diagnostic;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Turbine's implementation of {@link Messager}. */
public class TurbineMessager implements Messager {
diff --git a/java/com/google/turbine/processing/TurbineName.java b/java/com/google/turbine/processing/TurbineName.java
index a9ebe7c..5232491 100644
--- a/java/com/google/turbine/processing/TurbineName.java
+++ b/java/com/google/turbine/processing/TurbineName.java
@@ -19,7 +19,7 @@ package com.google.turbine.processing;
import static java.util.Objects.requireNonNull;
import javax.lang.model.element.Name;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** An implementation of {@link Name} backed by a {@link CharSequence}. */
public class TurbineName implements Name {
diff --git a/java/com/google/turbine/processing/TurbineProcessingEnvironment.java b/java/com/google/turbine/processing/TurbineProcessingEnvironment.java
index 8b44e75..4f32033 100644
--- a/java/com/google/turbine/processing/TurbineProcessingEnvironment.java
+++ b/java/com/google/turbine/processing/TurbineProcessingEnvironment.java
@@ -24,7 +24,7 @@ import javax.annotation.processing.ProcessingEnvironment;
import javax.lang.model.SourceVersion;
import javax.lang.model.util.Elements;
import javax.lang.model.util.Types;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** Turbine's {@link ProcessingEnvironment}. */
public class TurbineProcessingEnvironment implements ProcessingEnvironment {
diff --git a/java/com/google/turbine/processing/TurbineTypeMirror.java b/java/com/google/turbine/processing/TurbineTypeMirror.java
index 690f7fc..4cd8ba1 100644
--- a/java/com/google/turbine/processing/TurbineTypeMirror.java
+++ b/java/com/google/turbine/processing/TurbineTypeMirror.java
@@ -58,7 +58,7 @@ import javax.lang.model.type.TypeMirror;
import javax.lang.model.type.TypeVariable;
import javax.lang.model.type.TypeVisitor;
import javax.lang.model.type.WildcardType;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A {@link TypeMirror} implementation backed by a {@link Type}. */
public abstract class TurbineTypeMirror implements TypeMirror {
diff --git a/java/com/google/turbine/processing/TurbineTypes.java b/java/com/google/turbine/processing/TurbineTypes.java
index 8a70abe..32e1a99 100644
--- a/java/com/google/turbine/processing/TurbineTypes.java
+++ b/java/com/google/turbine/processing/TurbineTypes.java
@@ -68,7 +68,7 @@ import javax.lang.model.type.TypeKind;
import javax.lang.model.type.TypeMirror;
import javax.lang.model.type.WildcardType;
import javax.lang.model.util.Types;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** An implementation of {@link Types} backed by turbine's {@link TypeMirror}. */
@SuppressWarnings("nullness") // TODO(cushon): Address nullness diagnostics.
diff --git a/java/com/google/turbine/tree/Pretty.java b/java/com/google/turbine/tree/Pretty.java
index 211774f..6838530 100644
--- a/java/com/google/turbine/tree/Pretty.java
+++ b/java/com/google/turbine/tree/Pretty.java
@@ -34,7 +34,7 @@ import com.google.turbine.tree.Tree.ModUses;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** A pretty-printer for {@link Tree}s. */
public class Pretty implements Tree.Visitor<@Nullable Void, @Nullable Void> {
diff --git a/java/com/google/turbine/tree/Tree.java b/java/com/google/turbine/tree/Tree.java
index 88477a1..7d04312 100644
--- a/java/com/google/turbine/tree/Tree.java
+++ b/java/com/google/turbine/tree/Tree.java
@@ -29,7 +29,7 @@ import java.util.ArrayDeque;
import java.util.Deque;
import java.util.Optional;
import java.util.Set;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** An AST node. */
public abstract class Tree {
diff --git a/java/com/google/turbine/tree/package-info.java b/java/com/google/turbine/tree/package-info.java
index e400f40..2803c67 100644
--- a/java/com/google/turbine/tree/package-info.java
+++ b/java/com/google/turbine/tree/package-info.java
@@ -15,4 +15,5 @@
*/
@com.google.errorprone.annotations.CheckReturnValue
+@org.jspecify.nullness.NullMarked
package com.google.turbine.tree;
diff --git a/java/com/google/turbine/type/AnnoInfo.java b/java/com/google/turbine/type/AnnoInfo.java
index 77ea2a5..d42af5c 100644
--- a/java/com/google/turbine/type/AnnoInfo.java
+++ b/java/com/google/turbine/type/AnnoInfo.java
@@ -29,7 +29,7 @@ import com.google.turbine.tree.Tree.Anno;
import com.google.turbine.tree.Tree.Expression;
import java.util.Map;
import java.util.Objects;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** An annotation use. */
public class AnnoInfo {
diff --git a/java/com/google/turbine/type/Type.java b/java/com/google/turbine/type/Type.java
index d6269b3..5e46f88 100644
--- a/java/com/google/turbine/type/Type.java
+++ b/java/com/google/turbine/type/Type.java
@@ -32,7 +32,7 @@ import com.google.turbine.tree.Tree;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/** JLS 4 types. */
public interface Type {
diff --git a/java/com/google/turbine/types/Canonicalize.java b/java/com/google/turbine/types/Canonicalize.java
index e0e9e00..a0ba2c4 100644
--- a/java/com/google/turbine/types/Canonicalize.java
+++ b/java/com/google/turbine/types/Canonicalize.java
@@ -46,7 +46,7 @@ import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
-import org.checkerframework.checker.nullness.qual.Nullable;
+import org.jspecify.nullness.Nullable;
/**
* Canonicalizes qualified type names so qualifiers are always the declaring class of the qualified