blob: 26d0cfaf45df7513220fa5e7e289e6a85766476f [file] [log] [blame]
// @skip-test
// Test case for issue #520: https://github.com/typetools/checker-framework/issues/520
// compile with: $CHECKERFRAMEWORK/checker/bin/javac -g Issue520.java -processor nullness
// -AprintAllQualifiers
import java.util.ArrayList;
import java.util.List;
import org.checkerframework.checker.nullness.qual.*;
public class Issue520 {}
abstract class Parent<T> {
protected final List<? super @KeyForBottom T> list;
public Parent(List<? super @KeyForBottom T> list) {
this.list = list;
}
}
abstract class Child extends Parent<CharSequence> {
public Child(List<? super CharSequence> list) {
super(list);
}
public void add(CharSequence seq) {
list.add(seq);
}
}
class WildCardAdd {
List<@UnknownKeyFor ? super @KeyForBottom CharSequence> wildCardList =
new ArrayList<@KeyForBottom CharSequence>();
void foo(
List<@KeyFor("m") CharSequence> keyForMCharSeq, @UnknownKeyFor CharSequence unknownCharSeq) {
wildCardList = keyForMCharSeq;
wildCardList.add(unknownCharSeq);
@KeyFor("y") Object o = wildCardList.get(0);
}
}