Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7f94169e authored by Anton Hansson's avatar Anton Hansson
Browse files

Add @Nullable and @NonNull to module API

These two annotations are already in the public/system stubs,
but are re-written to be package private instead of public. This
makes them inaccessible to libs building against these stubs.

When setting sdk_version:<X>, the stubs of X will appear before any
other libraries on the classpath. This also makes it impossible for
modules to add Nullable annotations of their own when setting sdk_version.

Exposing these annotations as public in the module stubs makes it
possible for modules using these annotation to specify an sdk_version.

Bug: 146758669
Test: m
Test: downstream CLs using sdk_version:module_current
Change-Id: I71fb766d02f833ed9a1b3a7dbfbc1c8118882b30
Merged-In: I71fb766d02f833ed9a1b3a7dbfbc1c8118882b30
(cherry picked from commit c8fc90a0c2b04a5f6f5e6006155ca1e9a09db4e3)
parent 3939d29c
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
// Signature format: 2.0
package android.annotation {

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD}) public @interface NonNull {
  }

  @java.lang.annotation.Retention(java.lang.annotation.RetentionPolicy.SOURCE) @java.lang.annotation.Target({java.lang.annotation.ElementType.METHOD, java.lang.annotation.ElementType.PARAMETER, java.lang.annotation.ElementType.FIELD}) public @interface Nullable {
  }

}
+6 −3
Original line number Diff line number Diff line
@@ -15,14 +15,16 @@
 */
package android.annotation;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.SOURCE;

import android.annotation.SystemApi.Client;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * Denotes that a parameter, field or method return value can never be null.
 * <p>
@@ -34,5 +36,6 @@ import static java.lang.annotation.RetentionPolicy.SOURCE;
 */
@Retention(SOURCE)
@Target({METHOD, PARAMETER, FIELD})
@SystemApi(client = Client.MODULE_LIBRARIES)
public @interface NonNull {
}
+6 −3
Original line number Diff line number Diff line
@@ -15,14 +15,16 @@
 */
package android.annotation;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.ElementType.PARAMETER;
import static java.lang.annotation.RetentionPolicy.SOURCE;

import android.annotation.SystemApi.Client;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

/**
 * Denotes that a parameter, field or method return value can be null.
 * <p>
@@ -41,5 +43,6 @@ import static java.lang.annotation.RetentionPolicy.SOURCE;
 */
@Retention(SOURCE)
@Target({METHOD, PARAMETER, FIELD})
@SystemApi(client = Client.MODULE_LIBRARIES)
public @interface Nullable {
}