diff --git a/infer/annotations/src/main/java/com/facebook/infer/annotation/Nullsafe.java b/infer/annotations/src/main/java/com/facebook/infer/annotation/Nullsafe.java
index dce0dacc1..8872ec4ee 100644
--- a/infer/annotations/src/main/java/com/facebook/infer/annotation/Nullsafe.java
+++ b/infer/annotations/src/main/java/com/facebook/infer/annotation/Nullsafe.java
@@ -44,8 +44,8 @@ import kotlin.annotations.jvm.UnderMigration;
* An internal class is checked if it's annotated as @Nullsafe or @NullsafeStrict.
*
*
- * An external method is checked when it has nullability signature defined in third-party
- * signatures repo.
+ * An external method is checked when it's annotated or has nullability signature
+ * defined in third-party signatures repo.
*
*
* The code that has built-in models in nullsafe is considered checked (both internal and
@@ -107,10 +107,22 @@ import kotlin.annotations.jvm.UnderMigration;
public @interface Nullsafe {
enum Mode {
LOCAL,
+ /**
+ * @deprecated STRICT mode is deprecated and soon will have no effect on the
+ * behaviour of NullsafeX.
+ */
+ @Deprecated
STRICT
}
+ /**
+ * @deprecated Explicit TrustList is deprecated and soon will have no effect on the
+ * behaviour of Nullsafe. The code will be checked as if the mode is {@code
+ * trustAll = true}.
+ */
+ @Deprecated
@interface TrustList {
+
Class[] value();
/**
@@ -130,7 +142,10 @@ public @interface Nullsafe {
/**
* Provides fine-grained control over which unchecked internal classes to trust. Only affects
* LOCAL null-checking mode, as strict requires all dependencies to be STRICT themselves.
+ *
+ * @deprecated See {@link TrustList}.
*/
+ @Deprecated
TrustList trustOnly() default
@TrustList(
value = {},
diff --git a/infer/annotations/src/main/java/com/facebook/infer/annotation/NullsafeStrict.java b/infer/annotations/src/main/java/com/facebook/infer/annotation/NullsafeStrict.java
index 5452153b9..4cd13a17f 100644
--- a/infer/annotations/src/main/java/com/facebook/infer/annotation/NullsafeStrict.java
+++ b/infer/annotations/src/main/java/com/facebook/infer/annotation/NullsafeStrict.java
@@ -18,7 +18,10 @@ import java.lang.annotation.Target;
* return value is NOT annotated as @Nullable, then the function does not indeed return nulls,
* subject to unsoundness issues (which should either be fixed, or should rarely happen in
* practice).
+ *
+ * @deprecated Use {@link com.facebook.infer.annotation.Nullsafe} instead.
*/
@Retention(RetentionPolicy.CLASS)
@Target({ElementType.TYPE})
+@Deprecated
public @interface NullsafeStrict {}
diff --git a/infer/annotations/src/main/java/com/facebook/infer/annotation/ThreadConfined.java b/infer/annotations/src/main/java/com/facebook/infer/annotation/ThreadConfined.java
index 27841bb41..0c4131dbf 100644
--- a/infer/annotations/src/main/java/com/facebook/infer/annotation/ThreadConfined.java
+++ b/infer/annotations/src/main/java/com/facebook/infer/annotation/ThreadConfined.java
@@ -20,10 +20,10 @@ import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.CLASS)
public @interface ThreadConfined {
- String value();
/** the thread that the mutations should be confined to */
- public static String UI = "UI";
+ String value();
/** confined to the UI thread */
- public static String ANY = "ANY";
+ public static String UI = "UI";
/** confined to any thread (but only that thread!) */
+ public static String ANY = "ANY";
}