Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enforce @TargetLocations meta-annotation #339

Merged
merged 54 commits into from
Oct 1, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
729dc1d
enforce meta annotation TargetLocations
AndrewShf Sep 29, 2022
2ea9091
enforce meta annotation TargetLocations
AndrewShf Sep 29, 2022
722a8cf
fix some bugs
AndrewShf Sep 29, 2022
eb8460b
add support for ENUM_CONSTANT, refine doc
AndrewShf Sep 30, 2022
2cc6a92
Merge remote-tracking branch 'eisop/master' into enforce-targetlocations
AndrewShf Nov 7, 2022
93fb211
merge master
AndrewShf Nov 7, 2022
dcf9979
add typeuse locations to several checkers' qualifiers
AndrewShf Nov 8, 2022
cd76744
add typeuse locations to several checkers' qualifiers
AndrewShf Nov 9, 2022
e9f1a70
add typeuse locations to several checkers' qualifiers
AndrewShf Nov 9, 2022
6cbd315
add typeuse locations to several checkers' qualifiers
AndrewShf Nov 9, 2022
3cd0c0a
add typeuse locations to several checkers' qualifiers
AndrewShf Nov 10, 2022
967c4bd
add initial description for two constructor methods
AndrewShf Nov 10, 2022
fceabb3
add a testcase
AndrewShf Nov 12, 2022
eb2897a
fix format
AndrewShf Nov 12, 2022
2ae31ee
fix format
AndrewShf Nov 12, 2022
f3df54f
make enforce-targetlocation an option, disable this feature in some j…
AndrewShf Nov 16, 2022
aebde76
make enforce-targetlocation an option, disable this feature in some j…
AndrewShf Nov 16, 2022
36cf32c
adding type use location throws
AndrewShf Nov 16, 2022
41e7d7f
adding type use location throws
AndrewShf Nov 16, 2022
cd76ede
fix chekcer option
AndrewShf Nov 18, 2022
823d311
fix chekcer option
AndrewShf Nov 18, 2022
4bd0578
delete parameter in validateTypeOf
AndrewShf Nov 18, 2022
9002983
rename checker option, add changelog
AndrewShf Nov 20, 2022
30be09f
Merge remote-tracking branch 'eisop/master' into enforce-targetlocations
AndrewShf Nov 20, 2022
5e00825
make some changes for the api to be better used in CFI
AndrewShf Dec 19, 2022
13c4c4f
Merge remote-tracking branch 'eisop/master' into enforce-targetlocations
AndrewShf Dec 19, 2022
3bb864d
change qual.CompilerMessageKeyBottom's targetlocation from explicit_l…
AndrewShf Dec 19, 2022
27e5e5f
use xx_bound rather than explicit_xx_bound as the value of targetloca…
AndrewShf Dec 19, 2022
b120900
fix javadoc
AndrewShf Dec 19, 2022
3718f22
remove forloop when validating upper bound of type param
AndrewShf Feb 15, 2023
721defe
Merge remote-tracking branch 'eisop/master' into enforce-targetlocations
AndrewShf Feb 15, 2023
5e20124
Merge remote-tracking branch 'eisop/master' into enforce-targetlocations
AndrewShf Feb 16, 2023
2165e89
Merge remote-tracking branch 'eisop/master' into enforce-targetlocations
AndrewShf Aug 31, 2023
c7a1ca8
update commnet
AndrewShf Aug 31, 2023
24866f6
Merge branch 'master' into enforce-targetlocations
AndrewShf Sep 1, 2023
1075632
Merge branch 'master' into enforce-targetlocations
wmdietl Sep 26, 2023
3fce86f
Merge branch 'master' into enforce-targetlocations
wmdietl Sep 26, 2023
44ae38e
Apply suggestions from code review
AndrewShf Sep 28, 2023
de25601
clarify the use of some internal used qualifiers
AndrewShf Sep 28, 2023
9d6a6e9
rename and improve document
AndrewShf Sep 28, 2023
329fea3
rename targetlocation option
AndrewShf Sep 28, 2023
9bd987f
Improve document in targetLocations.java
AndrewShf Sep 28, 2023
b69942f
improve document
AndrewShf Sep 28, 2023
8c30dae
restrict the type-use locations of some bottom qualifiers, ignore tar…
AndrewShf Sep 28, 2023
8059225
ignore targetlocation meta-annotation running certain test suites
AndrewShf Sep 29, 2023
d30dabb
suppress type-use warnings for this file
AndrewShf Sep 29, 2023
6f62f07
update test files
AndrewShf Sep 29, 2023
ae9761c
update test files
AndrewShf Sep 29, 2023
d9a1967
Merge branch 'master' into enforce-targetlocations
AndrewShf Sep 30, 2023
5bfa5bf
Merge branch 'master' into enforce-targetlocations
wmdietl Oct 1, 2023
46f8dde
First highlight that TargetLocations are now validated
wmdietl Oct 1, 2023
11876bd
Make blocks explicit
wmdietl Oct 1, 2023
e228a60
Apply suggestions from code review
wmdietl Oct 1, 2023
619937e
Add missing cast
wmdietl Oct 1, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@
@SubtypeOf({CalledMethods.class, CalledMethodsPredicate.class})
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
public @interface CalledMethodsBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@SubtypeOf(CompilerMessageKey.class)
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@DefaultFor(TypeUseLocation.LOWER_BOUND)
public @interface CompilerMessageKeyBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
// Subtype relationships are set up by passing this class as a bottom
// to the multigraph hierarchy constructor.
@SubtypeOf({})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,12 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({
TypeUseLocation.LOWER_BOUND,
TypeUseLocation.UPPER_BOUND,
TypeUseLocation.LOCAL_VARIABLE,
TypeUseLocation.RESOURCE_VARIABLE
})
@SubtypeOf({})
@DefaultFor({TypeUseLocation.LOCAL_VARIABLE, TypeUseLocation.RESOURCE_VARIABLE})
public @interface FenumTop {}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf({Format.class, InvalidFormat.class})
@DefaultFor(value = {TypeUseLocation.LOWER_BOUND})
public @interface FormatBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
* <p>A type annotation indicating that the run-time value might or might not be a valid format
* string.
*
* <p>This annotation may not be written in source code; it is an implementation detail of the
* checker.
* <p>It is usually not necessary to write this annotation in source code. It is an implementation
* detail of the checker.
*
* @checker_framework.manual #formatter-checker Format String Checker
*/
Expand All @@ -29,5 +29,5 @@
@InvisibleQualifier
@SubtypeOf({})
@DefaultQualifierInHierarchy
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.ALL})
public @interface UnknownFormat {}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf(LocalizableKey.class)
@DefaultFor(TypeUseLocation.LOWER_BOUND)
public @interface LocalizableKeyBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf({I18nFormat.class, I18nInvalidFormat.class, I18nFormatFor.class})
@DefaultFor(value = {TypeUseLocation.LOWER_BOUND})
public @interface I18nFormatBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,15 @@
* <p>A type annotation indicating that the run-time value might or might not be a valid i18n format
* string.
*
* <p>It is usually not necessary to write this annotation in source code. It is an implementation
* detail of the checker.
*
* @checker_framework.manual #i18n-formatter-checker Internationalization Format String Checker
*/
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.ALL})
AndrewShf marked this conversation as resolved.
Show resolved Hide resolved
@InvisibleQualifier
@SubtypeOf({})
@DefaultQualifierInHierarchy
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf({Positive.class})
public @interface LowerBoundBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf(SameLen.class)
public @interface SameLenBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf(NegativeIndexFor.class)
public @interface SearchIndexBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf(SubstringIndexFor.class)
public @interface SubstringIndexBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,6 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf({LTOMLengthOf.class, UpperBoundLiteral.class})
public @interface UpperBoundBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf(LTEqLengthOf.class)
public @interface UpperBoundLiteral {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf({UnderInitialization.class, Initialized.class})
@QualifierForLiterals(LiteralKind.NULL)
public @interface FBCBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,14 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE_USE)
@TargetLocations({TypeUseLocation.RECEIVER, TypeUseLocation.PARAMETER, TypeUseLocation.RETURN})
@TargetLocations({
TypeUseLocation.RECEIVER,
TypeUseLocation.PARAMETER,
TypeUseLocation.RETURN,
TypeUseLocation.FIELD,
TypeUseLocation.LOCAL_VARIABLE,
TypeUseLocation.CONSTRUCTOR_RESULT
})
@SubtypeOf(GuardedByUnknown.class) // TODO: Should @GuardSatisfied be in its own hierarchy?
public @interface GuardSatisfied {
/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,6 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf({NewObject.class})
public @interface GuardedByBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import org.checkerframework.framework.qual.LiteralKind;
import org.checkerframework.framework.qual.QualifierForLiterals;
import org.checkerframework.framework.qual.SubtypeOf;
import org.checkerframework.framework.qual.TargetLocations;
import org.checkerframework.framework.qual.TypeUseLocation;

import java.lang.annotation.Documented;
Expand All @@ -16,8 +17,8 @@
/**
* Indicates that an expression is not known to be {@link LockHeld}.
*
* <p>This annotation may not be written in source code; it is an implementation detail of the
* checker.
* <p>It is usually not necessary to write this annotation in source code. It is an implementation
* detail of the checker.
*
* @see LockHeld
* @checker_framework.manual #lock-checker Lock Checker
Expand All @@ -29,5 +30,6 @@
@SubtypeOf({})
@DefaultQualifierInHierarchy
@DefaultFor(value = TypeUseLocation.LOWER_BOUND, types = Void.class)
@TargetLocations({TypeUseLocation.ALL})
@QualifierForLiterals(LiteralKind.NULL)
public @interface LockPossiblyHeld {}
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,12 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({
TypeUseLocation.LOWER_BOUND,
TypeUseLocation.UPPER_BOUND,
TypeUseLocation.CONSTRUCTOR_RESULT,
TypeUseLocation.RETURN
})
@SubtypeOf({GuardedBy.class, GuardSatisfied.class})
@DefaultFor(TypeUseLocation.CONSTRUCTOR_RESULT)
@QualifierForLiterals({LiteralKind.STRING, LiteralKind.PRIMITIVE})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@InvisibleQualifier
@SubtypeOf(KeyFor.class)
public @interface KeyForBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf(PropertyKey.class)
@DefaultFor(TypeUseLocation.LOWER_BOUND)
public @interface PropertyKeyBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@InvisibleQualifier
@SubtypeOf({Regex.class, org.checkerframework.checker.regex.qual.PartialRegex.class})
@DefaultFor(value = {TypeUseLocation.LOWER_BOUND})
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.ALL})
@InvisibleQualifier
@SubtypeOf({})
@DefaultQualifierInHierarchy
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf({
FieldDescriptorForPrimitive.class,
PrimitiveType.class,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,9 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({
TypeUseLocation.LOWER_BOUND,
TypeUseLocation.UPPER_BOUND,
})
@SubtypeOf({SignedPositiveFromUnsigned.class})
public @interface SignednessBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@SubtypeOf({}) // needs to be done programmatically
@DefaultFor(TypeUseLocation.LOWER_BOUND)
public @interface UnitsBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,5 @@
@SubtypeOf({InitializedFields.class})
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
public @interface InitializedFieldsBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@InvisibleQualifier
@SubtypeOf({ClassVal.class, ClassBound.class})
public @interface ClassValBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
@InvisibleQualifier
@SubtypeOf({MethodVal.class})
public @interface MethodValBottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.ALL})
@InvisibleQualifier
@SubtypeOf({})
@DefaultQualifierInHierarchy
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.ALL})
@InvisibleQualifier
@SubtypeOf({})
@DefaultQualifierInHierarchy
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,5 +19,5 @@
@SubtypeOf({UnknownThis.class})
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
public @interface BottomThis {}
Original file line number Diff line number Diff line change
Expand Up @@ -29,5 +29,5 @@
@Documented
@SubtypeOf({})
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.LOWER_BOUND, TypeUseLocation.UPPER_BOUND})
public @interface Bottom {}
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE_USE, ElementType.TYPE_PARAMETER})
@TargetLocations({TypeUseLocation.EXPLICIT_LOWER_BOUND, TypeUseLocation.EXPLICIT_UPPER_BOUND})
@TargetLocations({TypeUseLocation.UPPER_BOUND, TypeUseLocation.LOWER_BOUND})
@SubtypeOf({
ArrayLen.class,
BoolVal.class,
Expand Down
Loading