You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Given a class in the classpath, we need to assert that an analyzer can interpret the annotations on and surrounding each symbol correctly. For example, @NullMarked class Foo<T> { List<@Nullable T>bar(T arg) {…} } declares the following symbols:
Foo<T extends Object!>
List!<T?> Foo.bar(T)
Note that unlike the tests for expression types, sink types, conversion errors, and irrelevant annotations, these tests apply to analyzers' interpretaion of the spec with respect to compiled symbols and not Java source code. As such, these tests will apply to non-Java-source analyzers such as the Kotlin compiler.
The text was updated successfully, but these errors were encountered:
Some (maybe all?) nonprivate classes, fields, and methods in that directory will be annotated with a new class-retention annotation that has one string value, which contains that symbol's nullness-augmented type.
Some (maybe all?) nonprivate classes in that directory will also be annotated with a new class-retention annotation that contains a list of inherited members and their nullness-augmented types, as well as supertypes and their nullness-augmented types.
All those classes will be compiled into a JAR.
That JAR will be passed to the checker, in conformance test mode.
The checker will iterate through all the type elements in that JAR, and will emit nullness-augmented type information for every symbol (ignoring the test annotations above) and every inherited member and supertype.
The test framework will compare that emitted data with the nullness-augmented type information it will read from the annotations in the JAR.
Given a class in the classpath, we need to assert that an analyzer can interpret the annotations on and surrounding each symbol correctly. For example,
@NullMarked class Foo<T> { List<@Nullable T>bar(T arg) {…} }
declares the following symbols:Foo<T extends Object!>
List!<T?> Foo.bar(T)
Note that unlike the tests for expression types, sink types, conversion errors, and irrelevant annotations, these tests apply to analyzers' interpretaion of the spec with respect to compiled symbols and not Java source code. As such, these tests will apply to non-Java-source analyzers such as the Kotlin compiler.
The text was updated successfully, but these errors were encountered: