[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. * An internal class is checked if it's annotated as @Nullsafe or @NullsafeStrict.
* </ol> * </ol>
* <ol> * <ol>
* An external method is checked when it has nullability signature defined in third-party * An external method is checked when it's annotated or has nullability signature
* signatures repo. * defined in third-party signatures repo.
* </ol> * </ol>
* <ol> * <ol>
* The code that has built-in models in nullsafe is considered checked (both internal and * 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 { public @interface Nullsafe {
enum Mode { enum Mode {
LOCAL, LOCAL,
/**
* @deprecated STRICT mode is deprecated and soon will have no effect on the
* behaviour of NullsafeX.
*/
@Deprecated
STRICT 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 { @interface TrustList {
Class[] value(); Class[] value();
/** /**
@ -130,7 +142,10 @@ public @interface Nullsafe {
/** /**
* Provides fine-grained control over which unchecked internal classes to trust. Only affects * 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. * LOCAL null-checking mode, as strict requires all dependencies to be STRICT themselves.
*
* @deprecated See {@link TrustList}.
*/ */
@Deprecated
TrustList trustOnly() default TrustList trustOnly() default
@TrustList( @TrustList(
value = {}, 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, * 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 * subject to unsoundness issues (which should either be fixed, or should rarely happen in
* practice). * practice).
*
* @deprecated Use {@link com.facebook.infer.annotation.Nullsafe} instead.
*/ */
@Retention(RetentionPolicy.CLASS) @Retention(RetentionPolicy.CLASS)
@Target({ElementType.TYPE}) @Target({ElementType.TYPE})
@Deprecated
public @interface NullsafeStrict {} public @interface NullsafeStrict {}

@ -20,10 +20,10 @@ import java.lang.annotation.Target;
@Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD}) @Target({ElementType.TYPE, ElementType.FIELD, ElementType.METHOD})
@Retention(RetentionPolicy.CLASS) @Retention(RetentionPolicy.CLASS)
public @interface ThreadConfined { public @interface ThreadConfined {
String value();
/** the thread that the mutations should be confined to */ /** the thread that the mutations should be confined to */
public static String UI = "UI"; String value();
/** confined to the UI thread */ /** confined to the UI thread */
public static String ANY = "ANY"; public static String UI = "UI";
/** confined to any thread (but only that thread!) */ /** confined to any thread (but only that thread!) */
public static String ANY = "ANY";
} }

Loading…
Cancel
Save