Index: pkg/analyzer/test/generated/static_type_warning_code_test.dart |
diff --git a/pkg/analyzer/test/generated/static_type_warning_code_test.dart b/pkg/analyzer/test/generated/static_type_warning_code_test.dart |
index cab96a4a2c4a699d33b25de50fc4254a271a912e..86811cbcc8af35858bebd3faf04f2cfdb9f34269 100644 |
--- a/pkg/analyzer/test/generated/static_type_warning_code_test.dart |
+++ b/pkg/analyzer/test/generated/static_type_warning_code_test.dart |
@@ -26,8 +26,7 @@ class StaticTypeWarningCodeTest extends ResolverTestCase { |
fail_method_lookup_mixin_of_extends() async { |
// See dartbug.com/25605 |
resetWith(options: new AnalysisOptionsImpl()..enableSuperMixins = true); |
- await assertErrorsInUnverifiedCode( |
- ''' |
+ await assertErrorsInUnverifiedCode(''' |
class A { a() => null; } |
class B {} |
abstract class M extends A {} |
@@ -35,19 +34,17 @@ class T = B with M; // Warning: B does not extend A |
main() { |
new T().a(); // Warning: The method 'a' is not defined for the class 'T' |
} |
-''', |
- [ |
- // TODO(paulberry): when dartbug.com/25614 is fixed, add static warning |
- // code for "B does not extend A". |
- StaticTypeWarningCode.UNDEFINED_METHOD |
- ]); |
+''', [ |
+ // TODO(paulberry): when dartbug.com/25614 is fixed, add static warning |
+ // code for "B does not extend A". |
+ StaticTypeWarningCode.UNDEFINED_METHOD |
+ ]); |
} |
fail_method_lookup_mixin_of_implements() async { |
// See dartbug.com/25605 |
resetWith(options: new AnalysisOptionsImpl()..enableSuperMixins = true); |
- await assertErrorsInUnverifiedCode( |
- ''' |
+ await assertErrorsInUnverifiedCode(''' |
class A { a() => null; } |
class B {} |
abstract class M implements A {} |
@@ -55,18 +52,16 @@ class T = B with M; // Warning: Missing concrete implementation of 'A.a' |
main() { |
new T().a(); // Warning: The method 'a' is not defined for the class 'T' |
} |
-''', |
- [ |
- StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE, |
- StaticTypeWarningCode.UNDEFINED_METHOD |
- ]); |
+''', [ |
+ StaticWarningCode.NON_ABSTRACT_CLASS_INHERITS_ABSTRACT_MEMBER_ONE, |
+ StaticTypeWarningCode.UNDEFINED_METHOD |
+ ]); |
} |
fail_method_lookup_mixin_of_mixin() async { |
// See dartbug.com/25605 |
resetWith(options: new AnalysisOptionsImpl()..enableSuperMixins = true); |
- await assertErrorsInUnverifiedCode( |
- ''' |
+ await assertErrorsInUnverifiedCode(''' |
class A {} |
class B { b() => null; } |
class C {} |
@@ -75,15 +70,13 @@ class T = C with M; |
main() { |
new T().b(); |
} |
-''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD]); |
+''', [StaticTypeWarningCode.UNDEFINED_METHOD]); |
} |
fail_method_lookup_mixin_of_mixin_application() async { |
// See dartbug.com/25605 |
resetWith(options: new AnalysisOptionsImpl()..enableSuperMixins = true); |
- await assertErrorsInUnverifiedCode( |
- ''' |
+ await assertErrorsInUnverifiedCode(''' |
class A { a() => null; } |
class B {} |
class C {} |
@@ -92,30 +85,25 @@ class T = C with M; |
main() { |
new T().a(); |
} |
-''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD]); |
+''', [StaticTypeWarningCode.UNDEFINED_METHOD]); |
} |
fail_typeArgumentNotMatchingBounds_ofFunctionTypeAlias() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
typedef F<T extends A>(); |
F<B> fff; |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
fail_undefinedEnumConstant() async { |
// We need a way to set the parseEnum flag in the parser to true. |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
enum E { ONE } |
E e() { |
return E.TWO; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_ENUM_CONSTANT]); |
+}''', [StaticTypeWarningCode.UNDEFINED_ENUM_CONSTANT]); |
} |
test_ambiguousImport_function() async { |
@@ -123,14 +111,10 @@ E e() { |
import 'lib1.dart'; |
import 'lib2.dart'; |
g() { return f(); }'''); |
- addNamedSource( |
- "/lib1.dart", |
- r''' |
+ addNamedSource("/lib1.dart", r''' |
library lib1; |
f() {}'''); |
- addNamedSource( |
- "/lib2.dart", |
- r''' |
+ addNamedSource("/lib2.dart", r''' |
library lib2; |
f() {}'''); |
await computeAnalysisResult(source); |
@@ -143,8 +127,7 @@ f() {}'''); |
// assignment occurred outside an assert statement. (Note that it is a |
// dubious practice for the computation of an assert message to have side |
// effects, since it is only evaluated if the assert fails). |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
class C { |
void foo() {} |
} |
@@ -155,33 +138,28 @@ f(Object x) { |
assert(true, () { x = new C(); return 'msg'; }()); |
} |
} |
-''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD]); |
+''', [StaticTypeWarningCode.UNDEFINED_METHOD]); |
// Do not verify since `x.foo()` fails to resolve. |
} |
test_await_flattened() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
Future<Future<int>> ffi() => null; |
f() async { |
Future<int> b = await ffi(); // Warning: int not assignable to Future<int> |
} |
-''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_await_simple() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
Future<int> fi() => null; |
f() async { |
String a = await fi(); // Warning: int not assignable to String |
} |
-''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_awaitForIn_declaredVariableRightType() async { |
@@ -195,15 +173,13 @@ f() async { |
} |
test_awaitForIn_declaredVariableWrongType() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
f() async { |
Stream<String> stream; |
await for (int i in stream) {} |
} |
-''', |
- [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]); |
+''', [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]); |
} |
test_awaitForIn_downcast() async { |
@@ -247,26 +223,22 @@ f() async { |
} |
test_awaitForIn_existingVariableWrongType() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
f() async { |
Stream<String> stream; |
int i; |
await for (i in stream) {} |
} |
-''', |
- [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]); |
+''', [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]); |
} |
test_awaitForIn_notStream() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
f() async { |
await for (var i in true) {} |
} |
-''', |
- [StaticTypeWarningCode.FOR_IN_OF_INVALID_TYPE]); |
+''', [StaticTypeWarningCode.FOR_IN_OF_INVALID_TYPE]); |
} |
test_awaitForIn_streamOfDynamic() async { |
@@ -290,8 +262,7 @@ f() async { |
} |
test_bug21912() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
class A {} |
class B extends A {} |
@@ -310,38 +281,31 @@ void main() { |
left = t2; |
} |
} |
-''', |
- [ |
- StaticTypeWarningCode.INVALID_ASSIGNMENT, |
- StaticTypeWarningCode.INVALID_ASSIGNMENT |
- ]); |
+''', [ |
+ StaticTypeWarningCode.INVALID_ASSIGNMENT, |
+ StaticTypeWarningCode.INVALID_ASSIGNMENT |
+ ]); |
} |
test_expectedOneListTypeArgument() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
main() { |
<int, int> []; |
-}''', |
- [StaticTypeWarningCode.EXPECTED_ONE_LIST_TYPE_ARGUMENTS]); |
+}''', [StaticTypeWarningCode.EXPECTED_ONE_LIST_TYPE_ARGUMENTS]); |
} |
test_expectedTwoMapTypeArguments_one() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
main() { |
<int> {}; |
-}''', |
- [StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS]); |
+}''', [StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS]); |
} |
test_expectedTwoMapTypeArguments_three() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
main() { |
<int, int, int> {}; |
-}''', |
- [StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS]); |
+}''', [StaticTypeWarningCode.EXPECTED_TWO_MAP_TYPE_ARGUMENTS]); |
} |
test_forIn_declaredVariableRightType() async { |
@@ -353,13 +317,11 @@ f() { |
} |
test_forIn_declaredVariableWrongType() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
f() { |
for (int i in <String>[]) {} |
} |
-''', |
- [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]); |
+''', [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]); |
} |
test_forIn_downcast() async { |
@@ -406,14 +368,12 @@ f() { |
} |
test_forIn_existingVariableWrongType() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
f() { |
int i; |
for (i in <String>[]) {} |
} |
-''', |
- [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]); |
+''', [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]); |
} |
test_forIn_iterableOfDynamic() async { |
@@ -425,13 +385,11 @@ f() { |
} |
test_forIn_notIterable() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
f() { |
for (var i in true) {} |
} |
-''', |
- [StaticTypeWarningCode.FOR_IN_OF_INVALID_TYPE]); |
+''', [StaticTypeWarningCode.FOR_IN_OF_INVALID_TYPE]); |
} |
test_forIn_object() async { |
@@ -444,15 +402,13 @@ f() { |
} |
test_forIn_typeBoundBad() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
class Foo<T extends Iterable<int>> { |
void method(T iterable) { |
for (String i in iterable) {} |
} |
} |
-''', |
- [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]); |
+''', [StaticTypeWarningCode.FOR_IN_OF_INVALID_ELEMENT_TYPE]); |
} |
test_forIn_typeBoundGood() async { |
@@ -474,88 +430,73 @@ f() { |
} |
test_illegalAsyncGeneratorReturnType_function_nonStream() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
int f() async* {} |
-''', |
- [StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE]); |
+''', [StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE]); |
} |
test_illegalAsyncGeneratorReturnType_function_subtypeOfStream() async { |
resetWith(options: new AnalysisOptionsImpl()..strongMode = true); |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
abstract class SubStream<T> implements Stream<T> {} |
SubStream<int> f() async* {} |
-''', |
- [StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE]); |
+''', [StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE]); |
} |
test_illegalAsyncGeneratorReturnType_method_nonStream() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
class C { |
int f() async* {} |
} |
-''', |
- [StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE]); |
+''', [StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE]); |
} |
test_illegalAsyncGeneratorReturnType_method_subtypeOfStream() async { |
resetWith(options: new AnalysisOptionsImpl()..strongMode = true); |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
abstract class SubStream<T> implements Stream<T> {} |
class C { |
SubStream<int> f() async* {} |
} |
-''', |
- [StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE]); |
+''', [StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE]); |
} |
test_illegalAsyncReturnType_function_nonFuture() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
int f() async {} |
-''', |
- [ |
- StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE, |
- HintCode.MISSING_RETURN |
- ]); |
+''', [ |
+ StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE, |
+ HintCode.MISSING_RETURN |
+ ]); |
} |
test_illegalAsyncReturnType_function_subtypeOfFuture() async { |
resetWith(options: new AnalysisOptionsImpl()..strongMode = true); |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
abstract class SubFuture<T> implements Future<T> {} |
SubFuture<int> f() async { |
return 0; |
} |
-''', |
- [StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE]); |
+''', [StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE]); |
} |
test_illegalAsyncReturnType_method_nonFuture() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
class C { |
int m() async {} |
} |
-''', |
- [ |
- StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE, |
- HintCode.MISSING_RETURN |
- ]); |
+''', [ |
+ StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE, |
+ HintCode.MISSING_RETURN |
+ ]); |
} |
test_illegalAsyncReturnType_method_subtypeOfFuture() async { |
resetWith(options: new AnalysisOptionsImpl()..strongMode = true); |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
abstract class SubFuture<T> implements Future<T> {} |
class C { |
@@ -563,53 +504,43 @@ class C { |
return 0; |
} |
} |
-''', |
- [StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE]); |
+''', [StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE]); |
} |
test_illegalSyncGeneratorReturnType_function_nonIterator() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
int f() sync* {} |
-''', |
- [StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE]); |
+''', [StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE]); |
} |
test_illegalSyncGeneratorReturnType_function_subclassOfIterator() async { |
resetWith(options: new AnalysisOptionsImpl()..strongMode = true); |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
abstract class SubIterator<T> implements Iterator<T> {} |
SubIterator<int> f() sync* {} |
-''', |
- [StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE]); |
+''', [StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE]); |
} |
test_illegalSyncGeneratorReturnType_method_nonIterator() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
class C { |
int f() sync* {} |
} |
-''', |
- [StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE]); |
+''', [StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE]); |
} |
test_illegalSyncGeneratorReturnType_method_subclassOfIterator() async { |
resetWith(options: new AnalysisOptionsImpl()..strongMode = true); |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
abstract class SubIterator<T> implements Iterator<T> {} |
class C { |
SubIterator<int> f() sync* {} |
} |
-''', |
- [StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE]); |
+''', [StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE]); |
} |
test_inconsistentMethodInheritance_paramCount() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
abstract class A { |
int x(); |
} |
@@ -617,13 +548,11 @@ abstract class B { |
int x(int y); |
} |
class C implements A, B { |
-}''', |
- [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]); |
+}''', [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]); |
} |
test_inconsistentMethodInheritance_paramType() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
abstract class A { |
x(int i); |
} |
@@ -631,13 +560,11 @@ abstract class B { |
x(String s); |
} |
abstract class C implements A, B {} |
-''', |
- [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]); |
+''', [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]); |
} |
test_inconsistentMethodInheritance_returnType() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
abstract class A { |
int x(); |
} |
@@ -645,73 +572,61 @@ abstract class B { |
String x(); |
} |
abstract class C implements A, B {} |
-''', |
- [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]); |
+''', [StaticTypeWarningCode.INCONSISTENT_METHOD_INHERITANCE]); |
} |
test_instanceAccessToStaticMember_method_invocation() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
static m() {} |
} |
main(A a) { |
a.m(); |
-}''', |
- [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
+}''', [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
} |
test_instanceAccessToStaticMember_method_reference() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
static m() {} |
} |
main(A a) { |
a.m; |
-}''', |
- [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
+}''', [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
} |
test_instanceAccessToStaticMember_propertyAccess_field() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
static var f; |
} |
main(A a) { |
a.f; |
-}''', |
- [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
+}''', [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
} |
test_instanceAccessToStaticMember_propertyAccess_getter() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
static get f => 42; |
} |
main(A a) { |
a.f; |
-}''', |
- [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
+}''', [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
} |
test_instanceAccessToStaticMember_propertyAccess_setter() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
static set f(x) {} |
} |
main(A a) { |
a.f = 42; |
-}''', |
- [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
+}''', [StaticTypeWarningCode.INSTANCE_ACCESS_TO_STATIC_MEMBER]); |
} |
test_invalidAssignment_compoundAssignment() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class byte { |
int _value; |
byte(this._value); |
@@ -721,99 +636,80 @@ class byte { |
void main() { |
byte b = new byte(52); |
b += 3; |
-}''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+}''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_invalidAssignment_defaultValue_named() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
f({String x: 0}) { |
-}''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+}''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_invalidAssignment_defaultValue_optional() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
f([String x = 0]) { |
-}''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+}''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_invalidAssignment_dynamic() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
main() { |
dynamic = 1; |
} |
-''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_invalidAssignment_functionExpressionInvocation() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
main() { |
String x = (() => 5)(); |
-}''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+}''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_invalidAssignment_ifNullAssignment() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
void f(int i) { |
double d; |
d ??= i; |
} |
-''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_invalidAssignment_instanceVariable() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
int x; |
} |
f() { |
A a; |
a.x = '0'; |
-}''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+}''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_invalidAssignment_localVariable() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
f() { |
int x; |
x = '0'; |
-}''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+}''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_invalidAssignment_regressionInIssue18468Fix() async { |
// https://code.google.com/p/dart/issues/detail?id=18628 |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class C<T> { |
T t = int; |
-}''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+}''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_invalidAssignment_staticVariable() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
static int x; |
} |
f() { |
A.x = '0'; |
-}''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+}''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_invalidAssignment_topLevelVariableDeclaration() async { |
@@ -823,35 +719,29 @@ f() { |
test_invalidAssignment_typeParameter() async { |
// 14221 |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class B<T> { |
T value; |
void test(num n) { |
value = n; |
} |
-}''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+}''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_invalidAssignment_variableDeclaration() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
int x = 'string'; |
-}''', |
- [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
+}''', [StaticTypeWarningCode.INVALID_ASSIGNMENT]); |
} |
test_invocationOfNonFunction_class() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
void m() { |
A(); |
} |
-}''', |
- [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
+}''', [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
} |
test_invocationOfNonFunction_localGenericFunction() async { |
@@ -862,39 +752,32 @@ class A { |
AnalysisOptionsImpl options = new AnalysisOptionsImpl(); |
options.enableStrictCallChecks = true; |
resetWith(options: options); |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
f(Function f) { |
return f(); |
-}''', |
- [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
+}''', [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
} |
test_invocationOfNonFunction_localObject() async { |
AnalysisOptionsImpl options = new AnalysisOptionsImpl(); |
options.enableStrictCallChecks = true; |
resetWith(options: options); |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
f(Object o) { |
return o(); |
-}''', |
- [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
+}''', [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
} |
test_invocationOfNonFunction_localVariable() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
f() { |
int x; |
return x(); |
-}''', |
- [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
+}''', [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
} |
test_invocationOfNonFunction_ordinaryInvocation() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
static int x; |
} |
@@ -902,27 +785,23 @@ class B { |
m() { |
A.x(); |
} |
-}''', |
- [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
+}''', [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
// A call to verify(source) fails as A.x() cannot be resolved. |
} |
test_invocationOfNonFunction_staticInvocation() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
static int get g => 0; |
f() { |
A.g(); |
} |
-}''', |
- [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
+}''', [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
// A call to verify(source) fails as g() cannot be resolved. |
} |
test_invocationOfNonFunction_superExpression() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
int get g => 0; |
} |
@@ -930,17 +809,14 @@ class B extends A { |
m() { |
var v = super.g(); |
} |
-}''', |
- [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
+}''', [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION]); |
} |
test_invocationOfNonFunctionExpression_literal() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
f() { |
3(5); |
-}''', |
- [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION_EXPRESSION]); |
+}''', [StaticTypeWarningCode.INVOCATION_OF_NON_FUNCTION_EXPRESSION]); |
} |
test_nonBoolCondition_conditional() async { |
@@ -949,145 +825,115 @@ f() { |
} |
test_nonBoolCondition_do() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
f() { |
do {} while (3); |
-}''', |
- [StaticTypeWarningCode.NON_BOOL_CONDITION]); |
+}''', [StaticTypeWarningCode.NON_BOOL_CONDITION]); |
} |
test_nonBoolCondition_for() async { |
// https://github.com/dart-lang/sdk/issues/24713 |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
f() { |
for (;3;) {} |
-}''', |
- [StaticTypeWarningCode.NON_BOOL_CONDITION]); |
+}''', [StaticTypeWarningCode.NON_BOOL_CONDITION]); |
} |
test_nonBoolCondition_if() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
f() { |
if (3) return 2; else return 1; |
-}''', |
- [StaticTypeWarningCode.NON_BOOL_CONDITION]); |
+}''', [StaticTypeWarningCode.NON_BOOL_CONDITION]); |
} |
test_nonBoolCondition_while() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
f() { |
while (3) {} |
-}''', |
- [StaticTypeWarningCode.NON_BOOL_CONDITION]); |
+}''', [StaticTypeWarningCode.NON_BOOL_CONDITION]); |
} |
test_nonBoolExpression_functionType() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
int makeAssertion() => 1; |
f() { |
assert(makeAssertion); |
-}''', |
- [StaticTypeWarningCode.NON_BOOL_EXPRESSION]); |
+}''', [StaticTypeWarningCode.NON_BOOL_EXPRESSION]); |
} |
test_nonBoolExpression_interfaceType() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
f() { |
assert(0); |
-}''', |
- [StaticTypeWarningCode.NON_BOOL_EXPRESSION]); |
+}''', [StaticTypeWarningCode.NON_BOOL_EXPRESSION]); |
} |
test_nonBoolNegationExpression() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
f() { |
!42; |
-}''', |
- [StaticTypeWarningCode.NON_BOOL_NEGATION_EXPRESSION]); |
+}''', [StaticTypeWarningCode.NON_BOOL_NEGATION_EXPRESSION]); |
} |
test_nonBoolOperand_and_left() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
bool f(int left, bool right) { |
return left && right; |
-}''', |
- [StaticTypeWarningCode.NON_BOOL_OPERAND]); |
+}''', [StaticTypeWarningCode.NON_BOOL_OPERAND]); |
} |
test_nonBoolOperand_and_right() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
bool f(bool left, String right) { |
return left && right; |
-}''', |
- [StaticTypeWarningCode.NON_BOOL_OPERAND]); |
+}''', [StaticTypeWarningCode.NON_BOOL_OPERAND]); |
} |
test_nonBoolOperand_or_left() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
bool f(List<int> left, bool right) { |
return left || right; |
-}''', |
- [StaticTypeWarningCode.NON_BOOL_OPERAND]); |
+}''', [StaticTypeWarningCode.NON_BOOL_OPERAND]); |
} |
test_nonBoolOperand_or_right() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
bool f(bool left, double right) { |
return left || right; |
-}''', |
- [StaticTypeWarningCode.NON_BOOL_OPERAND]); |
+}''', [StaticTypeWarningCode.NON_BOOL_OPERAND]); |
} |
test_nonTypeAsTypeArgument_notAType() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
int A; |
class B<E> {} |
-f(B<A> b) {}''', |
- [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]); |
+f(B<A> b) {}''', [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]); |
} |
test_nonTypeAsTypeArgument_undefinedIdentifier() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class B<E> {} |
-f(B<A> b) {}''', |
- [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]); |
+f(B<A> b) {}''', [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]); |
} |
test_returnOfInvalidType_async_future_int_mismatches_future_string() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
Future<String> f() async { |
return 5; |
} |
-''', |
- [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
+''', [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
} |
test_returnOfInvalidType_async_future_int_mismatches_int() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
int f() async { |
return 5; |
} |
-''', |
- [ |
- StaticTypeWarningCode.RETURN_OF_INVALID_TYPE, |
- StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE |
- ]); |
+''', [ |
+ StaticTypeWarningCode.RETURN_OF_INVALID_TYPE, |
+ StaticTypeWarningCode.ILLEGAL_ASYNC_RETURN_TYPE |
+ ]); |
} |
test_returnOfInvalidType_expressionFunctionBody_function() async { |
@@ -1101,24 +947,20 @@ int f() async { |
} |
test_returnOfInvalidType_expressionFunctionBody_localFunction() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
String m() { |
int f() => '0'; |
return '0'; |
} |
-}''', |
- [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
+}''', [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
} |
test_returnOfInvalidType_expressionFunctionBody_method() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
int f() => '0'; |
-}''', |
- [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
+}''', [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
} |
test_returnOfInvalidType_function() async { |
@@ -1132,24 +974,20 @@ class A { |
} |
test_returnOfInvalidType_localFunction() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
String m() { |
int f() { return '0'; } |
return '0'; |
} |
-}''', |
- [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
+}''', [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
} |
test_returnOfInvalidType_method() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
int f() { return '0'; } |
-}''', |
- [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
+}''', [StaticTypeWarningCode.RETURN_OF_INVALID_TYPE]); |
} |
test_returnOfInvalidType_not_issued_for_expressionFunctionBody_void() async { |
@@ -1179,110 +1017,91 @@ void main() { }'''); |
} |
test_typeArgumentNotMatchingBounds_classTypeAlias() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class C {} |
class G<E extends A> {} |
class D = G<B> with C; |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_extends() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class G<E extends A> {} |
class C extends G<B>{} |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_extends_regressionInIssue18468Fix() async { |
// https://code.google.com/p/dart/issues/detail?id=18628 |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class X<T extends Type> {} |
class Y<U> extends X<U> {} |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_fieldFormalParameter() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class G<E extends A> {} |
class C { |
var f; |
C(G<B> this.f) {} |
-}''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+}''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_functionReturnType() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class G<E extends A> {} |
G<B> f() { return null; } |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_functionTypeAlias() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class G<E extends A> {} |
typedef G<B> f(); |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_functionTypedFormalParameter() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class G<E extends A> {} |
f(G<B> h()) {} |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_implements() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class G<E extends A> {} |
class C implements G<B>{} |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_is() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class G<E extends A> {} |
var b = 1 is G<B>; |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_methodInvocation_localFunction() async { |
resetWith(options: new AnalysisOptionsImpl()..strongMode = true); |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class Point<T extends num> { |
Point(T x, T y); |
} |
@@ -1293,14 +1112,12 @@ main() { |
} |
print(f/*<String>*/('hello', 'world')); |
} |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_methodInvocation_method() async { |
resetWith(options: new AnalysisOptionsImpl()..strongMode = true); |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class Point<T extends num> { |
Point(T x, T y); |
} |
@@ -1314,14 +1131,12 @@ class PointFactory { |
f(PointFactory factory) { |
print(factory.point/*<String>*/('hello', 'world')); |
} |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_methodInvocation_topLevelFunction() async { |
resetWith(options: new AnalysisOptionsImpl()..strongMode = true); |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class Point<T extends num> { |
Point(T x, T y); |
} |
@@ -1333,189 +1148,155 @@ Point/*<T>*/ f/*<T extends num>*/(num/*=T*/ x, num/*=T*/ y) { |
main() { |
print(f/*<String>*/('hello', 'world')); |
} |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_methodReturnType() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class G<E extends A> {} |
class C { |
G<B> m() { return null; } |
-}''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+}''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_new() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class G<E extends A> {} |
f() { return new G<B>(); } |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_new_superTypeOfUpperBound() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B extends A {} |
class C extends B {} |
class G<E extends B> {} |
f() { return new G<A>(); } |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_parameter() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class G<E extends A> {} |
f(G<B> g) {} |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_redirectingConstructor() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class X<T extends A> { |
X(int x, int y) {} |
factory X.name(int x, int y) = X<B>; |
-}''', |
- [ |
- StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS, |
- StaticWarningCode.REDIRECT_TO_INVALID_RETURN_TYPE |
- ]); |
+}''', [ |
+ StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS, |
+ StaticWarningCode.REDIRECT_TO_INVALID_RETURN_TYPE |
+ ]); |
} |
test_typeArgumentNotMatchingBounds_typeArgumentList() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class C<E> {} |
class D<E extends A> {} |
C<D<B>> Var; |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_typeParameter() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class C {} |
class G<E extends A> {} |
class D<F extends G<B>> {} |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_variableDeclaration() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class G<E extends A> {} |
G<B> g; |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeArgumentNotMatchingBounds_with() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B {} |
class G<E extends A> {} |
class C extends Object with G<B>{} |
-''', |
- [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
+''', [StaticTypeWarningCode.TYPE_ARGUMENT_NOT_MATCHING_BOUNDS]); |
} |
test_typeParameterSupertypeOfItsBound() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A<T extends T> { |
} |
-''', |
- [StaticTypeWarningCode.TYPE_PARAMETER_SUPERTYPE_OF_ITS_BOUND]); |
+''', [StaticTypeWarningCode.TYPE_PARAMETER_SUPERTYPE_OF_ITS_BOUND]); |
} |
test_typePromotion_booleanAnd_useInRight_accessedInClosureRight_mutated() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
callMe(f()) { f(); } |
main(Object p) { |
(p is String) && callMe(() { p.length; }); |
p = 0; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_booleanAnd_useInRight_mutatedInLeft() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
main(Object p) { |
((p is String) && ((p = 42) == 42)) && p.length != 0; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_booleanAnd_useInRight_mutatedInRight() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
main(Object p) { |
(p is String) && (((p = 42) == 42) && p.length != 0); |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_conditional_useInThen_accessedInClosure_hasAssignment_after() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
callMe(f()) { f(); } |
main(Object p) { |
p is String ? callMe(() { p.length; }) : 0; |
p = 42; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_conditional_useInThen_accessedInClosure_hasAssignment_before() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
callMe(f()) { f(); } |
main(Object p) { |
p = 42; |
p is String ? callMe(() { p.length; }) : 0; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_conditional_useInThen_hasAssignment() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
main(Object p) { |
p is String ? (p.length + (p = 42)) : 0; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_if_accessedInClosure_hasAssignment() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
callMe(f()) { f(); } |
main(Object p) { |
if (p is String) { |
@@ -1524,24 +1305,20 @@ main(Object p) { |
}); |
} |
p = 0; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_if_and_right_hasAssignment() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
main(Object p) { |
if (p is String && (p = null) == null) { |
p.length; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_if_extends_notMoreSpecific_dynamic() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class V {} |
class A<T> {} |
class B<S> extends A<S> { |
@@ -1552,13 +1329,11 @@ main(A<V> p) { |
if (p is B) { |
p.b; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_if_extends_notMoreSpecific_notMoreSpecificTypeArg() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class V {} |
class A<T> {} |
class B<S> extends A<S> { |
@@ -1569,85 +1344,71 @@ main(A<V> p) { |
if (p is B<int>) { |
p.b; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_if_hasAssignment_after() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
main(Object p) { |
if (p is String) { |
p.length; |
p = 0; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_if_hasAssignment_before() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
main(Object p) { |
if (p is String) { |
p = 0; |
p.length; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_if_hasAssignment_inClosure_anonymous_after() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
main(Object p) { |
if (p is String) { |
p.length; |
} |
() {p = 0;}; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_if_hasAssignment_inClosure_anonymous_before() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
main(Object p) { |
() {p = 0;}; |
if (p is String) { |
p.length; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_if_hasAssignment_inClosure_function_after() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
main(Object p) { |
if (p is String) { |
p.length; |
} |
f() {p = 0;}; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_if_hasAssignment_inClosure_function_before() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
main(Object p) { |
f() {p = 0;}; |
if (p is String) { |
p.length; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_if_implements_notMoreSpecific_dynamic() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class V {} |
class A<T> {} |
class B<S> implements A<S> { |
@@ -1658,13 +1419,11 @@ main(A<V> p) { |
if (p is B) { |
p.b; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_typePromotion_if_with_notMoreSpecific_dynamic() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class V {} |
class A<T> {} |
class B<S> extends Object with A<S> { |
@@ -1675,38 +1434,31 @@ main(A<V> p) { |
if (p is B) { |
p.b; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_undefinedFunction() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
void f() { |
g(); |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_FUNCTION]); |
+}''', [StaticTypeWarningCode.UNDEFINED_FUNCTION]); |
} |
test_undefinedFunction_inCatch() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
void f() { |
try { |
} on Object { |
g(); |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_FUNCTION]); |
+}''', [StaticTypeWarningCode.UNDEFINED_FUNCTION]); |
} |
test_undefinedFunction_inImportedLib() async { |
Source source = addSource(r''' |
import 'lib.dart' as f; |
main() { return f.g(); }'''); |
- addNamedSource( |
- "/lib.dart", |
- r''' |
+ addNamedSource("/lib.dart", r''' |
library lib; |
h() {}'''); |
await computeAnalysisResult(source); |
@@ -1714,11 +1466,9 @@ h() {}'''); |
} |
test_undefinedGetter() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class T {} |
-f(T e) { return e.m; }''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+f(T e) { return e.m; }''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_undefinedGetter_generic_function_call() async { |
@@ -1728,31 +1478,26 @@ f(T e) { return e.m; }''', |
AnalysisOptionsImpl options = new AnalysisOptionsImpl(); |
options.enableStrictCallChecks = true; |
resetWith(options: options); |
- await assertErrorsInUnverifiedCode( |
- ''' |
+ await assertErrorsInUnverifiedCode(''' |
f(Function f) { |
return f.call; |
} |
-''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_undefinedGetter_object_call() async { |
AnalysisOptionsImpl options = new AnalysisOptionsImpl(); |
options.enableStrictCallChecks = true; |
resetWith(options: options); |
- await assertErrorsInUnverifiedCode( |
- ''' |
+ await assertErrorsInUnverifiedCode(''' |
f(Object o) { |
return o.call; |
} |
-''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_undefinedGetter_proxy_annotation_fakeProxy() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
library L; |
class Fake { |
const Fake(); |
@@ -1761,109 +1506,90 @@ const proxy = const Fake(); |
@proxy class PrefixProxy {} |
main() { |
new PrefixProxy().foo; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_undefinedGetter_static() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class A {} |
-var a = A.B;''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+var a = A.B;''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_undefinedGetter_typeLiteral_cascadeTarget() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class T { |
static int get foo => 42; |
} |
main() { |
T..foo; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_undefinedGetter_typeLiteral_conditionalAccess() async { |
// When applied to a type literal, the conditional access operator '?.' |
// cannot be used to access instance getters of Type. |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
class A {} |
f() => A?.hashCode; |
-''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_undefinedGetter_void() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class T { |
void m() {} |
} |
-f(T e) { return e.m().f; }''', |
- [StaticTypeWarningCode.UNDEFINED_GETTER]); |
+f(T e) { return e.m().f; }''', [StaticTypeWarningCode.UNDEFINED_GETTER]); |
} |
test_undefinedGetter_wrongNumberOfTypeArguments_tooLittle() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A<K, V> { |
K element; |
} |
main(A<int> a) { |
a.element.anyGetterExistsInDynamic; |
-}''', |
- [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
+}''', [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
} |
test_undefinedGetter_wrongNumberOfTypeArguments_tooMany() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A<E> { |
E element; |
} |
main(A<int,int> a) { |
a.element.anyGetterExistsInDynamic; |
-}''', |
- [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
+}''', [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
} |
test_undefinedGetter_wrongOfTypeArgument() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A<E> { |
E element; |
} |
main(A<NoSuchType> a) { |
a.element.anyGetterExistsInDynamic; |
-}''', |
- [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]); |
+}''', [StaticTypeWarningCode.NON_TYPE_AS_TYPE_ARGUMENT]); |
} |
test_undefinedMethod() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
void m() { |
n(); |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD]); |
+}''', [StaticTypeWarningCode.UNDEFINED_METHOD]); |
} |
test_undefinedMethod_assignmentExpression() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B { |
f(A a) { |
A a2 = new A(); |
a += a2; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD]); |
+}''', [StaticTypeWarningCode.UNDEFINED_METHOD]); |
} |
test_undefinedMethod_generic_function_call() async { |
@@ -1873,18 +1599,15 @@ class B { |
AnalysisOptionsImpl options = new AnalysisOptionsImpl(); |
options.enableStrictCallChecks = true; |
resetWith(options: options); |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
f(Function f) { |
f.call(); |
} |
-''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD]); |
+''', [StaticTypeWarningCode.UNDEFINED_METHOD]); |
} |
test_undefinedMethod_ignoreTypePropagation() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B extends A { |
m() {} |
@@ -1894,8 +1617,7 @@ class C { |
A a = new B(); |
a.m(); |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD]); |
+}''', [StaticTypeWarningCode.UNDEFINED_METHOD]); |
} |
test_undefinedMethod_leastUpperBoundWithNull() async { |
@@ -1907,50 +1629,41 @@ class C { |
AnalysisOptionsImpl options = new AnalysisOptionsImpl(); |
options.enableStrictCallChecks = true; |
resetWith(options: options); |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
f(Object o) { |
o.call(); |
} |
-''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD]); |
+''', [StaticTypeWarningCode.UNDEFINED_METHOD]); |
} |
test_undefinedMethod_ofNull() async { |
// TODO(scheglov) Track https://github.com/dart-lang/sdk/issues/28430 to |
// decide whether a warning should be reported here. |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
Null f(int x) => null; |
main() { |
f(42).abs(); |
} |
-''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD]); |
+''', [StaticTypeWarningCode.UNDEFINED_METHOD]); |
} |
test_undefinedMethod_private() async { |
- addNamedSource( |
- "/lib.dart", |
- r''' |
+ addNamedSource("/lib.dart", r''' |
library lib; |
class A { |
_foo() {} |
}'''); |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
import 'lib.dart'; |
class B extends A { |
test() { |
_foo(); |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD]); |
+}''', [StaticTypeWarningCode.UNDEFINED_METHOD]); |
} |
test_undefinedMethod_proxy_annotation_fakeProxy() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
library L; |
class Fake { |
const Fake(); |
@@ -1959,229 +1672,187 @@ const proxy = const Fake(); |
@proxy class PrefixProxy {} |
main() { |
new PrefixProxy().foo(); |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD]); |
+}''', [StaticTypeWarningCode.UNDEFINED_METHOD]); |
} |
test_undefinedMethod_typeLiteral_cascadeTarget() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
class T { |
static void foo() {} |
} |
main() { |
T..foo(); |
} |
-''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD]); |
+''', [StaticTypeWarningCode.UNDEFINED_METHOD]); |
} |
test_undefinedMethod_typeLiteral_conditionalAccess() async { |
// When applied to a type literal, the conditional access operator '?.' |
// cannot be used to access instance methods of Type. |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
class A {} |
f() => A?.toString(); |
-''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD]); |
+''', [StaticTypeWarningCode.UNDEFINED_METHOD]); |
} |
test_undefinedMethodWithConstructor() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class C { |
C.m(); |
} |
f() { |
C c = C.m(); |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_METHOD_WITH_CONSTRUCTOR]); |
+}''', [StaticTypeWarningCode.UNDEFINED_METHOD_WITH_CONSTRUCTOR]); |
} |
test_undefinedOperator_indexBoth() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class A {} |
f(A a) { |
a[0]++; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
+}''', [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
} |
test_undefinedOperator_indexGetter() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class A {} |
f(A a) { |
a[0]; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
+}''', [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
} |
test_undefinedOperator_indexSetter() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class A {} |
f(A a) { |
a[0] = 1; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
+}''', [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
} |
test_undefinedOperator_plus() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class A {} |
f(A a) { |
a + 1; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
+}''', [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
} |
test_undefinedOperator_postfixExpression() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
f(A a) { |
a++; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
+}''', [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
} |
test_undefinedOperator_prefixExpression() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
f(A a) { |
++a; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
+}''', [StaticTypeWarningCode.UNDEFINED_OPERATOR]); |
} |
test_undefinedSetter() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class T {} |
-f(T e1) { e1.m = 0; }''', |
- [StaticTypeWarningCode.UNDEFINED_SETTER]); |
+f(T e1) { e1.m = 0; }''', [StaticTypeWarningCode.UNDEFINED_SETTER]); |
} |
test_undefinedSetter_static() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class A {} |
-f() { A.B = 0;}''', |
- [StaticTypeWarningCode.UNDEFINED_SETTER]); |
+f() { A.B = 0;}''', [StaticTypeWarningCode.UNDEFINED_SETTER]); |
} |
test_undefinedSetter_typeLiteral_cascadeTarget() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class T { |
static void set foo(_) {} |
} |
main() { |
T..foo = 42; |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_SETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_SETTER]); |
} |
test_undefinedSetter_void() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class T { |
void m() {} |
} |
-f(T e) { e.m().f = 0; }''', |
- [StaticTypeWarningCode.UNDEFINED_SETTER]); |
+f(T e) { e.m().f = 0; }''', [StaticTypeWarningCode.UNDEFINED_SETTER]); |
} |
test_undefinedSuperGetter() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B extends A { |
get g { |
return super.g; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_SUPER_GETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_SUPER_GETTER]); |
} |
test_undefinedSuperMethod() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B extends A { |
m() { return super.m(); } |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_SUPER_METHOD]); |
+}''', [StaticTypeWarningCode.UNDEFINED_SUPER_METHOD]); |
} |
test_undefinedSuperOperator_binaryExpression() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class A {} |
class B extends A { |
operator +(value) { |
return super + value; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]); |
+}''', [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]); |
} |
test_undefinedSuperOperator_indexBoth() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class A {} |
class B extends A { |
operator [](index) { |
return super[index]++; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]); |
+}''', [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]); |
} |
test_undefinedSuperOperator_indexGetter() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class A {} |
class B extends A { |
operator [](index) { |
return super[index + 1]; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]); |
+}''', [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]); |
} |
test_undefinedSuperOperator_indexSetter() async { |
- await assertErrorsInUnverifiedCode( |
- r''' |
+ await assertErrorsInUnverifiedCode(r''' |
class A {} |
class B extends A { |
operator []=(index, value) { |
return super[index] = 0; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]); |
+}''', [StaticTypeWarningCode.UNDEFINED_SUPER_OPERATOR]); |
} |
test_undefinedSuperSetter() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class B extends A { |
f() { |
super.m = 0; |
} |
-}''', |
- [StaticTypeWarningCode.UNDEFINED_SUPER_SETTER]); |
+}''', [StaticTypeWarningCode.UNDEFINED_SUPER_SETTER]); |
} |
test_unqualifiedReferenceToNonLocalStaticMember_getter() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
static int get a => 0; |
} |
@@ -2189,15 +1860,11 @@ class B extends A { |
int b() { |
return a; |
} |
-}''', |
- [ |
- StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER |
- ]); |
+}''', [StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER]); |
} |
test_unqualifiedReferenceToNonLocalStaticMember_getter_invokeTarget() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
static int foo; |
} |
@@ -2207,15 +1874,11 @@ class B extends A { |
foo.abs(); |
} |
} |
-''', |
- [ |
- StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER |
- ]); |
+''', [StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER]); |
} |
test_unqualifiedReferenceToNonLocalStaticMember_method() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
static void a() {} |
} |
@@ -2223,15 +1886,11 @@ class B extends A { |
void b() { |
a(); |
} |
-}''', |
- [ |
- StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER |
- ]); |
+}''', [StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER]); |
} |
test_unqualifiedReferenceToNonLocalStaticMember_setter() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A { |
static set a(x) {} |
} |
@@ -2239,15 +1898,11 @@ class B extends A { |
b(y) { |
a = y; |
} |
-}''', |
- [ |
- StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER |
- ]); |
+}''', [StaticTypeWarningCode.UNQUALIFIED_REFERENCE_TO_NON_LOCAL_STATIC_MEMBER]); |
} |
test_wrongNumberOfTypeArguments_classAlias() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class M {} |
class B<F extends num> = A<F> with M;''', |
@@ -2255,158 +1910,130 @@ class B<F extends num> = A<F> with M;''', |
} |
test_wrongNumberOfTypeArguments_tooFew() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A<E, F> {} |
-A<A> a = null;''', |
- [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
+A<A> a = null;''', [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
} |
test_wrongNumberOfTypeArguments_tooMany() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A<E> {} |
-A<A, A> a = null;''', |
- [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
+A<A, A> a = null;''', [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
} |
test_wrongNumberOfTypeArguments_typeTest_tooFew() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class C<K, V> {} |
f(p) { |
return p is C<A>; |
-}''', |
- [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
+}''', [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
} |
test_wrongNumberOfTypeArguments_typeTest_tooMany() async { |
- await assertErrorsInCode( |
- r''' |
+ await assertErrorsInCode(r''' |
class A {} |
class C<E> {} |
f(p) { |
return p is C<A, A>; |
-}''', |
- [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
+}''', [StaticTypeWarningCode.WRONG_NUMBER_OF_TYPE_ARGUMENTS]); |
} |
test_yield_async_to_basic_type() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
int f() async* { |
yield 3; |
} |
-''', |
- [ |
- StaticTypeWarningCode.YIELD_OF_INVALID_TYPE, |
- StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE |
- ]); |
+''', [ |
+ StaticTypeWarningCode.YIELD_OF_INVALID_TYPE, |
+ StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE |
+ ]); |
} |
test_yield_async_to_iterable() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
Iterable<int> f() async* { |
yield 3; |
} |
-''', |
- [ |
- StaticTypeWarningCode.YIELD_OF_INVALID_TYPE, |
- StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE |
- ]); |
+''', [ |
+ StaticTypeWarningCode.YIELD_OF_INVALID_TYPE, |
+ StaticTypeWarningCode.ILLEGAL_ASYNC_GENERATOR_RETURN_TYPE |
+ ]); |
} |
test_yield_async_to_mistyped_stream() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
Stream<int> f() async* { |
yield "foo"; |
} |
-''', |
- [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]); |
+''', [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]); |
} |
test_yield_each_async_non_stream() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
f() async* { |
yield* 0; |
} |
-''', |
- [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]); |
+''', [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]); |
} |
test_yield_each_async_to_mistyped_stream() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
Stream<int> f() async* { |
yield* g(); |
} |
Stream<String> g() => null; |
-''', |
- [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]); |
+''', [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]); |
} |
test_yield_each_sync_non_iterable() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
f() sync* { |
yield* 0; |
} |
-''', |
- [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]); |
+''', [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]); |
} |
test_yield_each_sync_to_mistyped_iterable() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
Iterable<int> f() sync* { |
yield* g(); |
} |
Iterable<String> g() => null; |
-''', |
- [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]); |
+''', [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]); |
} |
test_yield_sync_to_basic_type() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
int f() sync* { |
yield 3; |
} |
-''', |
- [ |
- StaticTypeWarningCode.YIELD_OF_INVALID_TYPE, |
- StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE |
- ]); |
+''', [ |
+ StaticTypeWarningCode.YIELD_OF_INVALID_TYPE, |
+ StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE |
+ ]); |
} |
test_yield_sync_to_mistyped_iterable() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
Iterable<int> f() sync* { |
yield "foo"; |
} |
-''', |
- [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]); |
+''', [StaticTypeWarningCode.YIELD_OF_INVALID_TYPE]); |
} |
test_yield_sync_to_stream() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
Stream<int> f() sync* { |
yield 3; |
} |
-''', |
- [ |
- StaticTypeWarningCode.YIELD_OF_INVALID_TYPE, |
- StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE |
- ]); |
+''', [ |
+ StaticTypeWarningCode.YIELD_OF_INVALID_TYPE, |
+ StaticTypeWarningCode.ILLEGAL_SYNC_GENERATOR_RETURN_TYPE |
+ ]); |
} |
} |
@@ -2440,8 +2067,7 @@ main() { |
} |
test_legalAsyncGeneratorReturnType_function_supertypeOfStream() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
f() async* { yield 42; } |
dynamic f2() async* { yield 42; } |
@@ -2451,13 +2077,11 @@ Stream<dynamic> f5() async* { yield 42; } |
Stream<Object> f6() async* { yield 42; } |
Stream<num> f7() async* { yield 42; } |
Stream<int> f8() async* { yield 42; } |
-''', |
- []); |
+''', []); |
} |
test_legalAsyncReturnType_function_supertypeOfFuture() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
import 'dart:async'; |
f() async { return 42; } |
dynamic f2() async { return 42; } |
@@ -2467,13 +2091,11 @@ Future<dynamic> f5() async { return 42; } |
Future<Object> f6() async { return 42; } |
Future<num> f7() async { return 42; } |
Future<int> f8() async { return 42; } |
-''', |
- []); |
+''', []); |
} |
test_legalSyncGeneratorReturnType_function_supertypeOfIterable() async { |
- await assertErrorsInCode( |
- ''' |
+ await assertErrorsInCode(''' |
f() sync* { yield 42; } |
dynamic f2() sync* { yield 42; } |
Object f3() sync* { yield 42; } |
@@ -2482,7 +2104,6 @@ Iterable<dynamic> f5() sync* { yield 42; } |
Iterable<Object> f6() sync* { yield 42; } |
Iterable<num> f7() sync* { yield 42; } |
Iterable<int> f8() sync* { yield 42; } |
-''', |
- []); |
+''', []); |
} |
} |