blob: e53aa1d3cd1b9dcd369faa9849b71fecc2c989fd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
import java.util.AbstractSet;
import java.util.Set;
interface Ancestor {}
interface Subject extends Ancestor {}
class Descendant implements Subject {}
class Type {
private Set myField;
public void meth() {
Set<Ancestor> ancestors = null;
myField = ancestors;
Set<? extends Ancestor> ancestorExtends = null;
myField = ancestorExtends;
Set<? super Ancestor> ancestorSupers = null;
myField = ancestorSupers;
// turning everything into Set<Subject> is actually too strict, but correct
Set<Subject> subjects = null;
myField = subjects;
Set<? extends Subject> subjectExtends = null;
myField = subjectExtends;
Set<? super Subject> subjectSupers = null;
myField = subjectSupers;
Set<Descendant> descendants = null;
myField = descendants;
Set<? extends Descendant> descendantExtends = null;
myField = descendantExtends;
Set<? super Descendant> descendantSupers = null;
myField = descendantSupers;
Set set = null;
myField = set;
AbstractSet<Descendant> myCollection = null;
myField = myCollection;
}
}
|