Index: test/checker/checker_test.dart |
diff --git a/test/checker/checker_test.dart b/test/checker/checker_test.dart |
index 8bd958fd1df0bde3e50125b406de71bda5a6893c..879480efa5289faa5e94624641f3d1c543b4f59b 100644 |
--- a/test/checker/checker_test.dart |
+++ b/test/checker/checker_test.dart |
@@ -29,7 +29,7 @@ void main() { |
} |
void bar(a) { |
- foo(/*info:DownCast,warning:DynamicInvoke*/a.x); |
+ foo(/*info:DynamicCast,warning:DynamicInvoke*/a.x); |
} |
typedef DynFun(x); |
@@ -93,16 +93,16 @@ void main() { |
// int is non-nullable |
// TODO(vsm): This should be an error, not a warning. |
- x = /*warning:DownCastLiteral*/null; |
+ x = /*warning:InferableLiteral*/null; |
Leaf
2015/03/25 21:06:28
This should really be a cast.
|
x = 42; |
- x = /*info:DownCast*/z; |
+ x = /*warning:DownCastImplicit*/z; |
// double is non-nullable |
// TODO(vsm): This should be an error, not a warning. |
- y = /*warning:DownCastLiteral*/null; |
+ y = /*warning:InferableLiteral*/null; |
y = /*severe:StaticTypeError*/42; |
y = 42.0; |
- y = /*info:DownCast*/z; |
+ y = /*warning:DownCastImplicit*/z; |
// num is nullable |
z = null; |
@@ -126,7 +126,7 @@ void main() { |
T x; |
// TODO(vsm): Should this be a different type of DownCast? |
- T foo() => /*warning:DownCastLiteral*/null; |
+ T foo() => /*warning:InferableLiteral*/null; |
void bar() { |
int /*severe:InvalidVariableDeclaration*/x; |
@@ -153,7 +153,7 @@ void main() { |
T x; |
// TODO(vsm): Should this be a different type of DownCast? |
- T foo() => /*warning:DownCastLiteral*/null; |
+ T foo() => /*warning:InferableLiteral*/null; |
} |
''' |
}, nonnullableTypes: <String>['int', 'double']); |
@@ -171,7 +171,7 @@ void main() { |
A(this.x) : this.y = /*severe:StaticTypeError*/42; |
- A.c1(p): this.x = /*info:DownCast*/z, this.y = /*info:DownCast*/p; |
+ A.c1(p): this.x = /*warning:DownCastImplicit*/z, this.y = /*info:DynamicCast*/p; |
A.c2(this.x, this.y); |
@@ -184,12 +184,12 @@ void main() { |
B.c2(int x, String y) : super.c2(/*severe:StaticTypeError*/y, |
/*severe:StaticTypeError*/x); |
- B.c3(num x, Object y) : super.c3(x, /*info:DownCast*/y); |
+ B.c3(num x, Object y) : super.c3(x, /*warning:DownCastImplicit*/y); |
} |
void main() { |
- A a = new A.c2(/*info:DownCast*/z, /*severe:StaticTypeError*/z); |
- var b = new B.c2(/*severe:StaticTypeError*/"hello", /*info:DownCast*/obj); |
+ A a = new A.c2(/*warning:DownCastImplicit*/z, /*severe:StaticTypeError*/z); |
+ var b = new B.c2(/*severe:StaticTypeError*/"hello", /*warning:DownCastImplicit*/obj); |
} |
''' |
}); |
@@ -257,11 +257,11 @@ void main() { |
A a; |
B b; |
o = y; |
- i = /*info:DownCast*/y; |
- d = /*info:DownCast*/y; |
- n = /*info:DownCast*/y; |
- a = /*info:DownCast*/y; |
- b = /*info:DownCast*/y; |
+ i = /*info:DynamicCast*/y; |
+ d = /*info:DynamicCast*/y; |
+ n = /*info:DynamicCast*/y; |
+ a = /*info:DynamicCast*/y; |
+ b = /*info:DynamicCast*/y; |
} |
''' |
}); |
@@ -288,7 +288,7 @@ void main() { |
d = /*severe:StaticTypeError*/a; |
n = /*severe:StaticTypeError*/a; |
a = a; |
- b = /*info:DownCast*/a; |
+ b = /*warning:DownCastImplicit*/a; |
} |
''' |
}); |
@@ -345,21 +345,21 @@ void main() { |
top = bot; |
} |
{ |
- left = /*info:DownCast*/top; |
+ left = /*warning:DownCastImplicit*/top; |
left = left; |
left = /*severe:StaticTypeError*/right; |
left = bot; |
} |
{ |
- right = /*info:DownCast*/top; |
+ right = /*warning:DownCastImplicit*/top; |
right = /*severe:StaticTypeError*/left; |
right = right; |
right = bot; |
} |
{ |
- bot = /*info:DownCast*/top; |
- bot = /*info:DownCast*/left; |
- bot = /*info:DownCast*/right; |
+ bot = /*warning:DownCastImplicit*/top; |
+ bot = /*warning:DownCastImplicit*/left; |
+ bot = /*warning:DownCastImplicit*/right; |
bot = bot; |
} |
} |
@@ -380,7 +380,7 @@ void main() { |
Object top(int x) => x; |
int left(int x) => x; |
Object right(Object x) => x; |
- int _bot(Object x) => /*info:DownCast*/x; |
+ int _bot(Object x) => /*warning:DownCastImplicit*/x; |
int bot(Object x) => x as int; |
void main() { |
@@ -436,7 +436,7 @@ void main() { |
typedef B Bot(A x); // Bottom of the lattice |
B left(B x) => x; |
- B _bot(A x) => /*info:DownCast*/x; |
+ B _bot(A x) => /*warning:DownCastImplicit*/x; |
B bot(A x) => x as B; |
A top(B x) => x; |
A right(A x) => x; |
@@ -493,7 +493,7 @@ void main() { |
dynamic left(A x) => x; |
A bot(A x) => x; |
dynamic top(dynamic x) => x; |
- A right(dynamic x) => /*info:DownCast*/x; |
+ A right(dynamic x) => /*info:DynamicCast*/x; |
void main() { |
{ |
@@ -866,8 +866,8 @@ void main() { |
f = /*severe:StaticTypeError*/new B(); |
f = i2i; |
f = /*warning:ClosureWrap*/n2n; |
- f = /*warning:DownCast*/(i2i as Object); |
- f = /*warning:DownCast*/(n2n as Function); |
+ f = /*warning:DownCastComposite*/(i2i as Object); |
+ f = /*warning:DownCastComposite*/(n2n as Function); |
} |
{ |
N2N f; |
@@ -875,8 +875,8 @@ void main() { |
f = new B(); |
f = /*warning:ClosureWrap*/i2i; |
f = n2n; |
- f = /*warning:DownCast*/(i2i as Object); |
- f = /*warning:DownCast*/(n2n as Function); |
+ f = /*warning:DownCastComposite*/(i2i as Object); |
+ f = /*warning:DownCastComposite*/(n2n as Function); |
} |
{ |
A f; |
@@ -884,8 +884,8 @@ void main() { |
f = /*severe:StaticTypeError*/new B(); |
f = /*severe:StaticTypeError*/i2i; |
f = /*severe:StaticTypeError*/n2n; |
- f = /*info:DownCast*/(i2i as Object); |
- f = /*info:DownCast*/(n2n as Function); |
+ f = /*warning:DownCastImplicit*/(i2i as Object); |
+ f = /*warning:DownCastImplicit*/(n2n as Function); |
} |
{ |
B f; |
@@ -893,8 +893,8 @@ void main() { |
f = new B(); |
f = /*severe:StaticTypeError*/i2i; |
f = /*severe:StaticTypeError*/n2n; |
- f = /*info:DownCast*/(i2i as Object); |
- f = /*info:DownCast*/(n2n as Function); |
+ f = /*warning:DownCastImplicit*/(i2i as Object); |
+ f = /*warning:DownCastImplicit*/(n2n as Function); |
} |
{ |
Function f; |
@@ -902,7 +902,7 @@ void main() { |
f = new B(); |
f = i2i; |
f = n2n; |
- f = /*info:DownCast*/(i2i as Object); |
+ f = /*warning:DownCastImplicit*/(i2i as Object); |
f = (n2n as Function); |
} |
} |
@@ -1004,7 +1004,7 @@ void main() { |
lOfCs = /*severe:StaticTypeError*/ns; |
// M<T> <: L<S> iff S = dynamic or S=T |
- mOfAs = /*info:DownCast*/lOfAs; |
+ mOfAs = /*warning:DownCastComposite*/lOfAs; |
mOfAs = /*severe:StaticTypeError*/lOfBs; |
mOfAs = /*severe:StaticTypeError*/lOfCs; |
@@ -1018,7 +1018,7 @@ void main() { |
// M<T> <: L<S> iff S = dynamic or S=T |
mOfBs = /*severe:StaticTypeError*/lOfAs; |
- mOfBs = /*info:DownCast*/lOfBs; |
+ mOfBs = /*warning:DownCastComposite*/lOfBs; |
mOfBs = /*severe:StaticTypeError*/lOfCs; |
// M<S> <: M<S> iff S = dynamic or S=T |
@@ -1032,7 +1032,7 @@ void main() { |
// M<T> <: L<S> iff S = dynamic or S=T |
mOfCs = /*severe:StaticTypeError*/lOfAs; |
mOfCs = /*severe:StaticTypeError*/lOfBs; |
- mOfCs = /*info:DownCast*/lOfCs; |
+ mOfCs = /*warning:DownCastComposite*/lOfCs; |
// M<S> <: M<S> iff S = dynamic or S=T |
mOfCs = /*severe:StaticTypeError*/mOfAs; |
@@ -1043,10 +1043,10 @@ void main() { |
mOfCs = /*severe:StaticTypeError*/ns; |
// Concrete subclass subtyping |
- ns = /*info:DownCast*/lOfAs; |
+ ns = /*warning:DownCastImplicit*/lOfAs; |
ns = /*severe:StaticTypeError*/lOfBs; |
ns = /*severe:StaticTypeError*/lOfCs; |
- ns = /*info:DownCast*/mOfAs; |
+ ns = /*warning:DownCastImplicit*/mOfAs; |
ns = /*severe:StaticTypeError*/mOfBs; |
ns = /*severe:StaticTypeError*/mOfCs; |
ns = ns; |
@@ -1109,32 +1109,32 @@ void main() { |
lOfDynamics = ns; |
// L<T> <: L<S> iff S = dynamic or S=T |
- lOfAs = /*warning:DownCastDynamic*/lRaw; |
- lOfAs = /*warning:DownCastDynamic*/lOfDynamics; |
+ lOfAs = /*warning:DownCastComposite*/lRaw; |
+ lOfAs = /*warning:DownCastComposite*/lOfDynamics; |
// M<dynamic> </:/> L<A> |
lOfAs = /*severe:StaticTypeError*/mRaw; |
lOfAs = /*severe:StaticTypeError*/mOfDynamics; |
// L<T> <: L<S> iff S = dynamic or S=T |
- lOfBs = /*warning:DownCastDynamic*/lRaw; |
- lOfBs = /*warning:DownCastDynamic*/lOfDynamics; |
+ lOfBs = /*warning:DownCastComposite*/lRaw; |
+ lOfBs = /*warning:DownCastComposite*/lOfDynamics; |
// M<dynamic> </:/> L<B> |
lOfBs = /*severe:StaticTypeError*/mRaw; |
lOfBs = /*severe:StaticTypeError*/mOfDynamics; |
// L<T> <: L<S> iff S = dynamic or S=T |
- lOfCs = /*warning:DownCastDynamic*/lRaw; |
- lOfCs = /*warning:DownCastDynamic*/lOfDynamics; |
+ lOfCs = /*warning:DownCastComposite*/lRaw; |
+ lOfCs = /*warning:DownCastComposite*/lOfDynamics; |
// M<dynamic> </:/> L<C> |
lOfCs = /*severe:StaticTypeError*/mRaw; |
lOfCs = /*severe:StaticTypeError*/mOfDynamics; |
// Raw type subtyping |
- mRaw = /*info:DownCast*/lRaw; |
- mRaw = /*info:DownCast*/lOfDynamics; |
+ mRaw = /*warning:DownCastImplicit*/lRaw; |
+ mRaw = /*warning:DownCastImplicit*/lOfDynamics; |
mRaw = /*severe:StaticTypeError*/lOfAs; |
mRaw = /*severe:StaticTypeError*/lOfBs; |
mRaw = /*severe:StaticTypeError*/lOfCs; |
@@ -1146,8 +1146,8 @@ void main() { |
mRaw = ns; |
// M<dynamic> == M |
- mOfDynamics = /*info:DownCast*/lRaw; |
- mOfDynamics = /*info:DownCast*/lOfDynamics; |
+ mOfDynamics = /*warning:DownCastImplicit*/lRaw; |
+ mOfDynamics = /*warning:DownCastImplicit*/lOfDynamics; |
mOfDynamics = /*severe:StaticTypeError*/lOfAs; |
mOfDynamics = /*severe:StaticTypeError*/lOfBs; |
mOfDynamics = /*severe:StaticTypeError*/lOfCs; |
@@ -1159,34 +1159,34 @@ void main() { |
mOfDynamics = ns; |
// M<T> <: L<S> iff S = dynamic or S=T |
- mOfAs = /*info:DownCast*/lRaw; |
- mOfAs = /*info:DownCast*/lOfDynamics; |
+ mOfAs = /*warning:DownCastComposite*/lRaw; |
+ mOfAs = /*warning:DownCastComposite*/lOfDynamics; |
// M<dynamic> </:/> M<A> |
- mOfAs = /*warning:DownCastDynamic*/mRaw; |
- mOfAs = /*warning:DownCastDynamic*/mOfDynamics; |
+ mOfAs = /*warning:DownCastComposite*/mRaw; |
+ mOfAs = /*warning:DownCastComposite*/mOfDynamics; |
// M<T> <: L<S> iff S = dynamic or S=T |
- mOfBs = /*info:DownCast*/lRaw; |
- mOfBs = /*info:DownCast*/lOfDynamics; |
+ mOfBs = /*warning:DownCastComposite*/lRaw; |
+ mOfBs = /*warning:DownCastComposite*/lOfDynamics; |
// M<dynamic> </:/> M<B> |
- mOfBs = /*warning:DownCastDynamic*/mRaw; |
- mOfBs = /*warning:DownCastDynamic*/mOfDynamics; |
+ mOfBs = /*warning:DownCastComposite*/mRaw; |
+ mOfBs = /*warning:DownCastComposite*/mOfDynamics; |
// M<T> <: L<S> iff S = dynamic or S=T |
- mOfCs = /*info:DownCast*/lRaw; |
- mOfCs = /*info:DownCast*/lOfDynamics; |
+ mOfCs = /*warning:DownCastComposite*/lRaw; |
+ mOfCs = /*warning:DownCastComposite*/lOfDynamics; |
// M<dynamic> </:/> M<C> |
- mOfCs = /*warning:DownCastDynamic*/mRaw; |
- mOfCs = /*warning:DownCastDynamic*/mOfDynamics; |
+ mOfCs = /*warning:DownCastComposite*/mRaw; |
+ mOfCs = /*warning:DownCastComposite*/mOfDynamics; |
// Concrete subclass subtyping |
- ns = /*info:DownCast*/lRaw; |
- ns = /*info:DownCast*/lOfDynamics; |
- ns = /*info:DownCast*/mRaw; |
- ns = /*info:DownCast*/mOfDynamics; |
+ ns = /*warning:DownCastImplicit*/lRaw; |
+ ns = /*warning:DownCastImplicit*/lOfDynamics; |
+ ns = /*warning:DownCastImplicit*/mRaw; |
+ ns = /*warning:DownCastImplicit*/mOfDynamics; |
} |
''' |
}, covariantGenerics: false, relaxedCasts: false); |
@@ -1248,21 +1248,21 @@ void main() { |
lOfDD = lOfAA; |
// L<dynamic, A> |
- lOfDA = /*warning:DownCastDynamic*/lRaw; |
- lOfDA = /*warning:DownCastDynamic*/lOfD_; |
- lOfDA = /*warning:DownCastDynamic*/lOfA_; |
+ lOfDA = /*warning:DownCastComposite*/lRaw; |
+ lOfDA = /*warning:DownCastComposite*/lOfD_; |
+ lOfDA = /*warning:DownCastComposite*/lOfA_; |
lOfDA = lOfDA; |
lOfDA = /*severe:StaticTypeError*/lOfAD; |
- lOfDA = /*warning:DownCastDynamic*/lOfDD; |
+ lOfDA = /*warning:DownCastComposite*/lOfDD; |
lOfDA = lOfAA; |
// L<A, dynamic> |
- lOfAD = /*warning:DownCastDynamic*/lRaw; |
- lOfAD = /*warning:DownCastDynamic*/lOfD_; |
- lOfAD = /*warning:DownCastDynamic*/lOfA_; |
+ lOfAD = /*warning:DownCastComposite*/lRaw; |
+ lOfAD = /*warning:DownCastComposite*/lOfD_; |
+ lOfAD = /*warning:DownCastComposite*/lOfA_; |
lOfAD = /*severe:StaticTypeError*/lOfDA; |
lOfAD = lOfAD; |
- lOfAD = /*warning:DownCastDynamic*/lOfDD; |
+ lOfAD = /*warning:DownCastComposite*/lOfDD; |
lOfAD = lOfAA; |
// L<A> == L<dynamic, dynamic> |
@@ -1275,12 +1275,12 @@ void main() { |
lOfA_ = lOfAA; |
// L<A, A> |
- lOfAA = /*warning:DownCastDynamic*/lRaw; |
- lOfAA = /*warning:DownCastDynamic*/lOfD_; |
- lOfAA = /*warning:DownCastDynamic*/lOfA_; |
- lOfAA = /*warning:DownCastDynamic*/lOfDA; |
- lOfAA = /*warning:DownCastDynamic*/lOfAD; |
- lOfAA = /*warning:DownCastDynamic*/lOfDD; |
+ lOfAA = /*warning:DownCastComposite*/lRaw; |
+ lOfAA = /*warning:DownCastComposite*/lOfD_; |
+ lOfAA = /*warning:DownCastComposite*/lOfA_; |
+ lOfAA = /*warning:DownCastComposite*/lOfDA; |
+ lOfAA = /*warning:DownCastComposite*/lOfAD; |
+ lOfAA = /*warning:DownCastComposite*/lOfDD; |
lOfAA = lOfAA; |
} |
''' |
@@ -1324,7 +1324,7 @@ void main() { |
lOfAs = ns; |
// L<T> <: L<S> iff S <: T |
- lOfBs = /*info:DownCast*/lOfAs; |
+ lOfBs = /*warning:DownCastComposite*/lOfAs; |
lOfBs = lOfBs; |
lOfBs = /*severe:StaticTypeError*/lOfCs; |
@@ -1337,7 +1337,7 @@ void main() { |
lOfBs = /*severe:StaticTypeError*/ns; |
// L<T> <: L<S> iff S <: T |
- lOfCs = /*info:DownCast*/lOfAs; |
+ lOfCs = /*warning:DownCastComposite*/lOfAs; |
lOfCs = /*severe:StaticTypeError*/lOfBs; |
lOfCs = lOfCs; |
@@ -1350,7 +1350,7 @@ void main() { |
lOfCs = /*severe:StaticTypeError*/ns; |
// M<T> <: L<S> iff T <: S |
- mOfAs = /*info:DownCast*/lOfAs; |
+ mOfAs = /*warning:DownCastComposite*/lOfAs; |
mOfAs = /*severe:StaticTypeError*/lOfBs; |
mOfAs = /*severe:StaticTypeError*/lOfCs; |
@@ -1363,12 +1363,12 @@ void main() { |
mOfAs = ns; |
// M<T> <: L<S> iff T <: S |
- mOfBs = /*info:DownCast*/lOfAs; |
- mOfBs = /*info:DownCast*/lOfBs; |
+ mOfBs = /*warning:DownCastComposite*/lOfAs; |
+ mOfBs = /*warning:DownCastComposite*/lOfBs; |
mOfBs = /*severe:StaticTypeError*/lOfCs; |
// M<T> <: M<S> iff T <: S |
- mOfBs = /*info:DownCast*/mOfAs; |
+ mOfBs = /*warning:DownCastComposite*/mOfAs; |
mOfBs = mOfBs; |
mOfBs = /*severe:StaticTypeError*/mOfCs; |
@@ -1376,12 +1376,12 @@ void main() { |
mOfBs = /*severe:StaticTypeError*/ns; |
// M<T> <: L<S> iff T <: S |
- mOfCs = /*info:DownCast*/lOfAs; |
+ mOfCs = /*warning:DownCastComposite*/lOfAs; |
mOfCs = /*severe:StaticTypeError*/lOfBs; |
- mOfCs = /*info:DownCast*/lOfCs; |
+ mOfCs = /*warning:DownCastComposite*/lOfCs; |
// M<T> <: M<S> iff T :< S |
- mOfCs = /*info:DownCast*/mOfAs; |
+ mOfCs = /*warning:DownCastComposite*/mOfAs; |
mOfCs = /*severe:StaticTypeError*/mOfBs; |
mOfCs = mOfCs; |
@@ -1389,10 +1389,10 @@ void main() { |
mOfCs = /*severe:StaticTypeError*/ns; |
// Concrete subclass subtyping |
- ns = /*info:DownCast*/lOfAs; |
+ ns = /*warning:DownCastImplicit*/lOfAs; |
ns = /*severe:StaticTypeError*/lOfBs; |
ns = /*severe:StaticTypeError*/lOfCs; |
- ns = /*info:DownCast*/mOfAs; |
+ ns = /*warning:DownCastImplicit*/mOfAs; |
ns = /*severe:StaticTypeError*/mOfBs; |
ns = /*severe:StaticTypeError*/mOfCs; |
ns = ns; |
@@ -1444,36 +1444,36 @@ void main() { |
lOfOs = lOfAs; |
} |
{ |
- lOfAs = /*warning:DownCastDynamic*/mOfDs; |
+ lOfAs = /*warning:DownCastComposite*/mOfDs; |
lOfAs = /*severe:StaticTypeError*/mOfOs; |
lOfAs = mOfAs; |
- lOfAs = /*warning:DownCastDynamic*/lOfDs; |
- lOfAs = /*info:DownCast*/lOfOs; |
+ lOfAs = /*warning:DownCastComposite*/lOfDs; |
+ lOfAs = /*warning:DownCastComposite*/lOfOs; |
lOfAs = lOfAs; |
} |
{ |
mOfDs = mOfDs; |
mOfDs = mOfOs; |
mOfDs = mOfAs; |
- mOfDs = /*info:DownCast*/lOfDs; |
- mOfDs = /*info:DownCast*/lOfOs; |
- mOfDs = /*info:DownCast*/lOfAs; |
+ mOfDs = /*warning:DownCastImplicit*/lOfDs; |
+ mOfDs = /*warning:DownCastImplicit*/lOfOs; |
+ mOfDs = /*warning:DownCastImplicit*/lOfAs; |
} |
{ |
mOfOs = mOfDs; |
mOfOs = mOfOs; |
mOfOs = mOfAs; |
- mOfOs = /*info:DownCast*/lOfDs; |
- mOfOs = /*info:DownCast*/lOfOs; |
+ mOfOs = /*warning:DownCastImplicit*/lOfDs; |
+ mOfOs = /*warning:DownCastImplicit*/lOfOs; |
mOfOs = /*severe:StaticTypeError*/lOfAs; |
} |
{ |
- mOfAs = /*warning:DownCastDynamic*/mOfDs; |
- mOfAs = /*info:DownCast*/mOfOs; |
+ mOfAs = /*warning:DownCastComposite*/mOfDs; |
+ mOfAs = /*warning:DownCastComposite*/mOfOs; |
mOfAs = mOfAs; |
- mOfAs = /*info:DownCast*/lOfDs; |
- mOfAs = /*info:DownCast*/lOfOs; |
- mOfAs = /*info:DownCast*/lOfAs; |
+ mOfAs = /*warning:DownCastComposite*/lOfDs; |
+ mOfAs = /*warning:DownCastComposite*/lOfOs; |
+ mOfAs = /*warning:DownCastComposite*/lOfAs; |
} |
} |
@@ -1491,18 +1491,18 @@ void main() { |
List l1 = [1, 2, 3]; |
l1 = <int>[1, 2, 3]; |
- Iterable<int> i2 = /*warning:DownCastLiteral*/[1, 2, 3]; |
- i2 = /*warning:DownCastDynamic*/i1; |
- i2 = /*warning:DownCastDynamic*/l1; |
+ Iterable<int> i2 = /*warning:InferableLiteral*/[1, 2, 3]; |
+ i2 = /*warning:DownCastComposite*/i1; |
+ i2 = /*warning:DownCastComposite*/l1; |
i2 = <int>[1, 2, 3]; |
- List<int> l2 = /*warning:DownCastLiteral*/[1, 2, 3]; |
- l2 = /*info:DownCast*/i1; |
- l2 = /*warning:DownCastDynamic*/l1; |
+ List<int> l2 = /*warning:InferableLiteral*/[1, 2, 3]; |
+ l2 = /*warning:DownCastComposite*/i1; |
+ l2 = /*warning:DownCastComposite*/l1; |
- l2 = /*warning:DownCastExact*/new List(); |
- l2 = /*warning:DownCastExact*/new List(10); |
- l2 = /*warning:DownCastExact*/new List.filled(10, 42); |
+ l2 = /*warning:InferableAllocation*/new List(); |
+ l2 = /*warning:InferableAllocation*/new List(10); |
+ l2 = /*warning:InferableAllocation*/new List.filled(10, 42); |
} |
''' |
}); |
@@ -1518,8 +1518,8 @@ void main() { |
{ |
List<int> l = <int>[i]; |
l = <int>[/*severe:StaticTypeError*/s]; |
- l = <int>[/*info:DownCast*/n]; |
- l = <int>[i, /*info:DownCast*/n, /*severe:StaticTypeError*/s]; |
+ l = <int>[/*warning:DownCastImplicit*/n]; |
+ l = <int>[i, /*warning:DownCastImplicit*/n, /*severe:StaticTypeError*/s]; |
} |
{ |
List l = [i]; |
@@ -1530,9 +1530,9 @@ void main() { |
{ |
Map<String, int> m = <String, int>{s: i}; |
m = <String, int>{s: /*severe:StaticTypeError*/s}; |
- m = <String, int>{s: /*info:DownCast*/n}; |
+ m = <String, int>{s: /*warning:DownCastImplicit*/n}; |
m = <String, int>{s: i, |
- s: /*info:DownCast*/n, |
+ s: /*warning:DownCastImplicit*/n, |
s: /*severe:StaticTypeError*/s}; |
} |
// TODO(leafp): We can't currently test for key errors since the |
@@ -1554,23 +1554,26 @@ void main() { |
}); |
test('casts in constant contexts', () { |
- String mk(String error) => ''' |
+ String mk(String error1, String error2) => ''' |
class A { |
static const num n = 3.0; |
- static const int i = /*$error*/n; |
+ static const int i = /*$error2*/n; |
final int fi; |
- const A(num a) : this.fi = /*$error*/a; |
+ const A(num a) : this.fi = /*$error1*/a; |
} |
class B extends A { |
- const B(Object a) : super(/*$error*/a); |
+ const B(Object a) : super(/*$error1*/a); |
} |
void foo(Object o) { |
- var a = const A(/*$error*/o); |
+ var a = const A(/*$error1*/o); |
} |
'''; |
- testChecker({'/main.dart': mk("severe:StaticTypeError")}, |
+ testChecker( |
+ {'/main.dart': mk("severe:StaticTypeError", "severe:StaticTypeError")}, |
allowConstCasts: false); |
- testChecker({'/main.dart': mk("info:DownCast")}, allowConstCasts: true); |
+ testChecker( |
+ {'/main.dart': mk("warning:DownCastImplicit", "info:AssignmentCast")}, |
+ allowConstCasts: true); |
}); |
test('casts in conditionals', () { |
@@ -1579,7 +1582,7 @@ void main() { |
main() { |
bool b = true; |
num x = b ? 1 : 2.3; |
- int y = /*info:DownCast*/b ? 1 : 2.3; |
+ int y = /*info:AssignmentCast*/b ? 1 : 2.3; |
String z = !b ? "hello" : null; |
z = b ? null : "hello"; |
} |
@@ -1839,7 +1842,7 @@ void main() { |
B b = new B(); |
var c = foo(); |
a = a * b; |
- a = a * /*pass should be info:DownCast*/c; |
+ a = a * /*pass should be warning:DownCastImplicit*/c; |
a = a / b; |
a = a ~/ b; |
a = a % b; |
@@ -1894,22 +1897,22 @@ void main() { |
z += 5; |
z += 3.14; |
- x = /*info:DownCast*/x + z; |
- x += /*info:DownCast*/z; |
- y = /*info:DownCast*/y + z; |
- y += /*info:DownCast*/z; |
+ x = /*warning:DownCastImplicit*/x + z; |
+ x += /*warning:DownCastImplicit*/z; |
+ y = /*warning:DownCastImplicit*/y + z; |
+ y += /*warning:DownCastImplicit*/z; |
dynamic w = 42; |
- x += /*info:DownCast*/w; |
- y += /*info:DownCast*/w; |
- z += /*info:DownCast*/w; |
+ x += /*info:DynamicCast*/w; |
+ y += /*info:DynamicCast*/w; |
+ z += /*info:DynamicCast*/w; |
A a = new A(); |
B b = new B(); |
var c = foo(); |
a = a * b; |
a *= b; |
- a *= /*info:DownCast*/c; |
+ a *= /*info:DynamicCast*/c; |
a /= b; |
a ~/= b; |
a %= b; |