-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathBottom.java
More file actions
24 lines (21 loc) · 1.11 KB
/
Copy pathBottom.java
File metadata and controls
24 lines (21 loc) · 1.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
package qual;
import org.checkerframework.framework.qual.DefaultFor;
import org.checkerframework.framework.qual.SubtypeOf;
import org.checkerframework.framework.qual.TargetLocations;
import org.checkerframework.framework.qual.TypeUseLocation;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@SubtypeOf({Mutable.class, Immutable.class, PolyMutable.class, ReceiverDependantMutable.class})
@DefaultFor({ TypeUseLocation.LOWER_BOUND })
@Documented
@Retention(RetentionPolicy.RUNTIME)
// Stop allowing any explicit usage of @Bottom qualifier in source. As it causes difficulty to
// differentiate correct explicit usage of @Bottom and internally propagated @Bottom. Instead,
// if programmers don't write anything on explicit lower bound(of a wildcard), we still have
// defaulting mechanism to make the explicit lower bound to be @Bottom. They can still use other
// qualifier than @Bottom explicitly on explicit lower bound to have different-than-default type.
@Target({})
@TargetLocations({})
public @interface Bottom {}