blob: a3eb3059ea1f4ab97ff4ad0afdeb90b1f820e418 [file] [log] [blame]
// Test case for issue #4142: https://tinyurl.com/cfissue/4142
// @skip-test until the issue is fixed
import java.util.HashMap;
import java.util.List;
import org.checkerframework.checker.nullness.qual.*;
public class SelfDependentType {
public void copy1(
HashMap<String, List<@KeyFor("#1") String>> a,
HashMap<String, List<@KeyFor("#2") String>> b) {
a = b;
}
public void copy2() {
HashMap<String, List<@KeyFor("a") String>> a = null;
HashMap<String, List<@KeyFor("b") String>> b = null;
a = b;
}
class SdtGraph1<T> {
HashMap<T, List<@KeyFor("childMap") T>> childMap;
// :: error: (expression.parameter.name)
public SdtGraph1(HashMap<T, List<@KeyFor("childMap") T>> childMap) {
this.childMap = childMap;
}
}
class SdtGraph2<T> {
HashMap<T, List<@KeyFor("this.childMap") T>> childMap;
// :: error: (expression.parameter.name)
public SdtGraph2(HashMap<T, List<@KeyFor("childMap") T>> childMap) {
this.childMap = childMap;
}
}
class SdtGraph3<T> {
HashMap<T, List<@KeyFor("childMap") T>> childMap;
public SdtGraph3(HashMap<T, List<@KeyFor("#1") T>> childMap) {
this.childMap = childMap;
}
}
class SdtGraph4<T> {
HashMap<T, List<@KeyFor("this.childMap") T>> childMap;
public SdtGraph4(HashMap<T, List<@KeyFor("#1") T>> childMap) {
this.childMap = childMap;
}
}
class SdtGraph5<T> {
HashMap<T, List<@KeyFor("childMap") T>> childMap;
public SdtGraph5(HashMap<T, List<@KeyFor("this.childMap") T>> childMap) {
this.childMap = childMap;
}
}
class SdtGraph6<T> {
HashMap<T, List<@KeyFor("this.childMap") T>> childMap;
public SdtGraph6(HashMap<T, List<@KeyFor("this.childMap") T>> childMap) {
this.childMap = childMap;
}
}
class SdtGraph11<T> {
HashMap<T, List<@KeyFor("childMapField") T>> childMapField;
// :: error: (expression.parameter.name)
public SdtGraph11(HashMap<T, List<@KeyFor("childMap") T>> childMap) {
this.childMapField = childMap;
}
}
class SdtGraph12<T> {
HashMap<T, List<@KeyFor("this.childMapField") T>> childMapField;
// :: error: (expression.parameter.name)
public SdtGraph12(HashMap<T, List<@KeyFor("childMap") T>> childMap) {
this.childMapField = childMap;
}
}
class SdtGraph13<T> {
HashMap<T, List<@KeyFor("childMapField") T>> childMapField;
public SdtGraph13(HashMap<T, List<@KeyFor("#1") T>> childMap) {
this.childMapField = childMap;
}
}
class SdtGraph14<T> {
HashMap<T, List<@KeyFor("this.childMapField") T>> childMapField;
public SdtGraph14(HashMap<T, List<@KeyFor("#1") T>> childMap) {
this.childMapField = childMap;
}
}
class SdtGraph15<T> {
HashMap<T, List<@KeyFor("childMapField") T>> childMapField;
public SdtGraph15(HashMap<T, List<@KeyFor("childMapField") T>> childMap) {
this.childMapField = childMap;
}
}
class SdtGraph16<T> {
HashMap<T, List<@KeyFor("this.childMapField") T>> childMapField;
public SdtGraph16(HashMap<T, List<@KeyFor("this.childMapField") T>> childMap) {
this.childMapField = childMap;
}
}
class SdtGraph17<T> {
HashMap<T, List<@KeyFor("childMapField") T>> childMapField;
public SdtGraph17(HashMap<T, List<@KeyFor("this.childMapField") T>> childMap) {
this.childMapField = childMap;
}
}
class SdtGraph18<T> {
HashMap<T, List<@KeyFor("this.childMapField") T>> childMapField;
public SdtGraph18(HashMap<T, List<@KeyFor("childMapField") T>> childMap) {
this.childMapField = childMap;
}
}
}