[nullsafe] Deprecate @NullsafeStrict and @Nullsafe modes except LOCAL(trustAll)

Reviewed By: mityal

Differential Revision: D27394112

fbshipit-source-id: e48de5e46
master
Artem Pianykh 4 years ago committed by Facebook GitHub Bot
parent a32a1a41b0
commit 5408be4a3a

@ -44,8 +44,8 @@ import kotlin.annotations.jvm.UnderMigration;
* An internal class is checked if it's annotated as @Nullsafe or @NullsafeStrict.
* </ol>
* <ol>
* 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.
* </ol>
* <ol>
* 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 = {},

@ -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 {}

@ -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";
}

Loading…
Cancel
Save