blob: 43336537f1b6bb26cda37a66fced937df4624b7c [file] [log] [blame]
import org.checkerframework.framework.qual.*;
import org.checkerframework.framework.testchecker.typedecldefault.quals.*;
// @TypeDeclDefaultBottom is the default qualifier in hierarchy.
@SuppressWarnings("inconsistent.constructor.type")
public class BoundsAndDefaults {
static @TypeDeclDefaultMiddle class MiddleClass {}
@TypeDeclDefaultBottom MiddleClass method(@TypeDeclDefaultMiddle MiddleClass middle, MiddleClass noAnno) {
noAnno = middle;
// :: error: (return)
return noAnno;
}
// :: error: (annotations.on.use)
void tops(@TypeDeclDefaultTop MiddleClass invalid) {
@TypeDeclDefaultTop MiddleClass local = null;
}
@NoDefaultQualifierForUse(TypeDeclDefaultTop.class)
static @TypeDeclDefaultMiddle class MiddleBoundClass {
@TypeDeclDefaultMiddle MiddleBoundClass() {}
}
@TypeDeclDefaultBottom MiddleBoundClass method(@TypeDeclDefaultMiddle MiddleBoundClass middle, MiddleBoundClass noAnno) {
// :: error: (assignment)
noAnno = middle;
return noAnno;
}
}