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 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98
|
/// PASS
String s = "ABC";
Object o = s;
//if (o instanceof String)
//s = o;
List<Object> l = new LinkedList();
l.add(s);
l.add(new java.io.File("."));
boolean b = o == s;
b = s == o;
/// FAIL
/// Toplevel
<U,T> T foo(T x, Object o) {
/*/// FAIL HERE*/ x = o;
return x;
}
/// PASS
/// Toplevel
<T> T pick(T x, T y) = x;
void foo(Object o, String s) {
Object x = pick(o,s);
x = pick(s,o);
}
/// FAIL
/// Toplevel
<T> T pick(T x, T y) = x;
void foo(Object o, String s) {
String /*/// FAIL HERE*/ x = pick(o,s);
}
/// FAIL
/// Toplevel
<T> T pick(T x, T y) = x;
void foo(Object o, String s) {
String /*/// FAIL HERE*/ x = pick(s,o);
}
/// PASS
/// Toplevel
<T, U | U <: T> U pick(T x, U y) = y;
void foo(Object o) {
?int x = pick(o,null);
}
/// FAIL
Object /* /// FAIL HERE */ o = null;
/// PASS
?Object o = null;
/// PASS
Object[] os = [ "DEF", 42 ];
foo(os);
/// Toplevel
void foo(Object[] os) {}
/// PASS
use(["s"]);
/// Toplevel
void use(Object[]) {}
/// PASS
?Object[] o1 = new Object[1];
Object[] o0 = new Object[0];
/// FAIL
String s = foo("");
/// Toplevel
let Object o = 2;
<T> T foo(T x) = x;
foo(#String s) = /*/// FAIL HERE*/ o;
/// FAIL
A<int> a = new A(x: 0);
/*/// FAIL HERE */ foo(a, new A(x: new Object()));
int x = a.x;
/// Toplevel
class A<T> { T x; }
<T> void foo(A<T> a1, A<T> a2) { a1.x = a2.x; }
/// FAIL
let (Object[], int->?Object)->void /*/// FAIL HERE */ f = foo;
/// Toplevel
<T> void foo(List<T>,T) {}
/// FAIL
let (?Object[], (int,int))->void /*/// FAIL HERE */ f = foo;
/// Toplevel
<T> void foo(List<T>,T) {}
|