Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(842)

Unified Diff: pkg/analyzer/test/generated/hint_code_test.dart

Issue 2625783002: Explicitly compute analysis results for sources to check errors. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/analyzer/test/generated/hint_code_test.dart
diff --git a/pkg/analyzer/test/generated/hint_code_test.dart b/pkg/analyzer/test/generated/hint_code_test.dart
index f37bb9cef8c9ca705a2bf5bea364316390850b73..02bd9972198c5338ff15cd93cf4262e5be3e6c3d 100644
--- a/pkg/analyzer/test/generated/hint_code_test.dart
+++ b/pkg/analyzer/test/generated/hint_code_test.dart
@@ -77,6 +77,7 @@ class B extends A {
}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.ABSTRACT_SUPER_MEMBER_REFERENCE]);
verify([source]);
}
@@ -92,6 +93,7 @@ class B extends A {
}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.ABSTRACT_SUPER_MEMBER_REFERENCE]);
verify([source]);
}
@@ -107,6 +109,7 @@ class B extends A {
}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.ABSTRACT_SUPER_MEMBER_REFERENCE]);
verify([source]);
}
@@ -122,6 +125,7 @@ class B extends A {
}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.ABSTRACT_SUPER_MEMBER_REFERENCE]);
verify([source]);
}
@@ -135,6 +139,7 @@ m() {
class A {
n(void f(int i)) {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]);
verify([source]);
}
@@ -153,6 +158,7 @@ m() {
n(i);
}
n(int i) {}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.ARGUMENT_TYPE_NOT_ASSIGNABLE]);
verify([source]);
}
@@ -163,6 +169,7 @@ m(x) {
x?.a()?.b();
}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -178,6 +185,7 @@ m(x) {
x?.b().toString();
}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -188,6 +196,7 @@ m(x) {
x?.a?.b;
}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -198,6 +207,7 @@ m(x) {
x?.a.b();
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.CAN_BE_NULL_AFTER_NULL_AWARE]);
verify([source]);
}
@@ -208,6 +218,7 @@ m(x) {
(x?.a).b;
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.CAN_BE_NULL_AFTER_NULL_AWARE]);
verify([source]);
}
@@ -218,6 +229,7 @@ m(x) {
x?.a.b;
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.CAN_BE_NULL_AFTER_NULL_AWARE]);
verify([source]);
}
@@ -227,6 +239,7 @@ m(x) {
f() {
true ? 1 : 2;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -237,6 +250,7 @@ f() {
f() {
true ? true : false && false;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -246,6 +260,7 @@ f() {
f() {
false ? 1 : 2;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -256,6 +271,7 @@ f() {
f() {
false ? false && false : true;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -265,6 +281,7 @@ f() {
f() {
if(true) {} else {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -275,6 +292,7 @@ f() {
f() {
if(true) {} else {if (false) {}}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -284,6 +302,7 @@ f() {
f() {
if(false) {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -294,6 +313,7 @@ f() {
f() {
if(false) {if(false) {}}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -303,6 +323,7 @@ f() {
f() {
while(false) {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -313,6 +334,7 @@ f() {
f() {
while(false) {if(false) {}}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -323,6 +345,7 @@ class A {}
f() {
try {} catch (e) {} catch (e) {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE_CATCH_FOLLOWING_CATCH]);
verify([source]);
}
@@ -334,6 +357,7 @@ class A {}
f() {
try {} catch (e) {} catch (e) {if(false) {}}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE_CATCH_FOLLOWING_CATCH]);
verify([source]);
}
@@ -343,6 +367,7 @@ f() {
f() {
try {} on Object catch (e) {} catch (e) {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE_CATCH_FOLLOWING_CATCH]);
verify([source]);
}
@@ -353,6 +378,7 @@ f() {
f() {
try {} on Object catch (e) {} catch (e) {if(false) {}}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE_CATCH_FOLLOWING_CATCH]);
verify([source]);
}
@@ -364,6 +390,7 @@ class B extends A {}
f() {
try {} on A catch (e) {} on B catch (e) {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE_ON_CATCH_SUBTYPE]);
verify([source]);
}
@@ -376,6 +403,7 @@ class B extends A {}
f() {
try {} on A catch (e) {} on B catch (e) {if(false) {}}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE_ON_CATCH_SUBTYPE]);
verify([source]);
}
@@ -395,6 +423,7 @@ f() {
break;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -416,6 +445,7 @@ f() {
}''');
// A single dead statement at the end of a switch case that is not a
// terminating statement will yield two errors.
+ await computeAnalysisResult(source);
await assertErrors(source,
[HintCode.DEAD_CODE, StaticWarningCode.CASE_BLOCK_NOT_TERMINATED]);
verify([source]);
@@ -426,6 +456,7 @@ f() {
f() {
bool b = false && false;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -435,6 +466,7 @@ f() {
f() {
bool b = false && (false && false);
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -444,6 +476,7 @@ f() {
f() {
bool b = true || true;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -453,6 +486,7 @@ f() {
f() {
bool b = true || (false && false);
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -467,6 +501,7 @@ f(v) {
var a;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -480,6 +515,7 @@ f() {
var a;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -492,6 +528,7 @@ f() {
var a;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -505,6 +542,7 @@ f(v) {
var a;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -517,6 +555,7 @@ f(v) {
var a;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -530,6 +569,7 @@ f() {
var a;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -542,6 +582,7 @@ f() {
var a;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -554,6 +595,7 @@ f(v) {
var a;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -568,6 +610,7 @@ f() {
}
var one = 1;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -582,6 +625,7 @@ f() {
var two = 2;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -593,6 +637,7 @@ f() {
return;
var two = 2;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -606,6 +651,7 @@ f(bool b) {
var two = 2;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -619,6 +665,7 @@ class A {
var two = 2;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -630,6 +677,7 @@ f() {
return;
if(false) {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -643,6 +691,7 @@ f() {
return;
var three = 3;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -654,6 +703,7 @@ f() {
throw 'Stop here';
var two = 2;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEAD_CODE]);
verify([source]);
}
@@ -668,6 +718,7 @@ f(A a) {
A b;
a += b;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -682,6 +733,7 @@ class A {
a();
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -693,6 +745,7 @@ class A {
m() {}
n() {m();}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -704,6 +757,7 @@ class A {
m() {}
n() {m();}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -716,6 +770,7 @@ class A {
@deprecated
library deprecated_library;
class A {}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -729,6 +784,7 @@ class A {
f(A a) {
return a.x;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -742,6 +798,7 @@ class A {
f(A a) {
return a.m;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -756,6 +813,7 @@ f(A a) {}''');
@deprecated
library deprecated_library;
class A {}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -769,6 +827,7 @@ class A {
f(A a) {
return a[1];
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -782,6 +841,7 @@ class A {
f() {
A a = new A(1);
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -795,6 +855,7 @@ class A {
f() {
A a = new A.named(1);
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -805,6 +866,7 @@ class A {
m({@deprecated int x}) {}
n() {m(x: 1);}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -819,6 +881,7 @@ f(A a) {
A b;
return a + b;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -829,6 +892,7 @@ class A {
m([@deprecated int x]) {}
n() {m(1);}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -842,6 +906,7 @@ class A {
f(A a) {
return a.s = 1;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -855,6 +920,7 @@ class A {
class B extends A {
B() : super() {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -868,6 +934,7 @@ class A {
class B extends A {
B() : super.named() {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DEPRECATED_MEMBER_USE]);
verify([source]);
}
@@ -877,6 +944,7 @@ class B extends A {
f(double x, double y) {
var v = (x / y).toInt();
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DIVISION_OPTIMIZATION]);
verify([source]);
}
@@ -886,6 +954,7 @@ f(double x, double y) {
f(int x, int y) {
var v = (x / y).toInt();
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DIVISION_OPTIMIZATION]);
verify([source]);
}
@@ -898,6 +967,7 @@ f(x, y) {
y = 1;
var v = (x / y).toInt();
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DIVISION_OPTIMIZATION]);
verify([source]);
}
@@ -907,6 +977,7 @@ f(x, y) {
f(int x, int y) {
var v = (((x / y))).toInt();
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DIVISION_OPTIMIZATION]);
verify([source]);
}
@@ -922,6 +993,7 @@ A a;''');
r'''
library lib1;
class A {}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DUPLICATE_IMPORT]);
verify([source]);
}
@@ -938,6 +1010,7 @@ A a;''');
r'''
library lib1;
class A {}''');
+ await computeAnalysisResult(source);
await assertErrors(
source, [HintCode.DUPLICATE_IMPORT, HintCode.DUPLICATE_IMPORT]);
verify([source]);
@@ -955,6 +1028,7 @@ M.A a;''');
library lib1;
class A {}
class B {}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.DUPLICATE_IMPORT]);
verify([source]);
}
@@ -970,6 +1044,7 @@ class Stateful {
class State { }
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -985,6 +1060,7 @@ abstract class Stateful {
class State { }
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1002,6 +1078,7 @@ class Stateful {
class State { }
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.INVALID_FACTORY_METHOD_IMPL]);
verify([source]);
}
@@ -1019,6 +1096,7 @@ class Stateful {
class State { }
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1036,6 +1114,7 @@ class Stateful {
class State { }
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1051,6 +1130,7 @@ class Stateful {
class State { }
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1068,6 +1148,7 @@ class X {
@factory
main() { }
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [
HintCode.INVALID_FACTORY_ANNOTATION,
HintCode.INVALID_FACTORY_ANNOTATION,
@@ -1088,6 +1169,7 @@ class Stateful {
}
''');
// Null return types will get flagged elsewhere, no need to pile-on here.
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1112,6 +1194,7 @@ class MyThing extends Stateful {
class State { }
class MyState extends State { }
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1125,6 +1208,7 @@ class Stateful {
void createState() {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.INVALID_FACTORY_METHOD_DECL]);
verify([source]);
}
@@ -1155,6 +1239,7 @@ f(var y) {
a.x = y;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.INVALID_ASSIGNMENT]);
verify([source]);
}
@@ -1166,6 +1251,7 @@ f(var y) {
int x = y;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.INVALID_ASSIGNMENT]);
verify([source]);
}
@@ -1187,6 +1273,7 @@ f(var y) {
A.x = y;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.INVALID_ASSIGNMENT]);
verify([source]);
}
@@ -1206,6 +1293,7 @@ main() {
var p2 = new Point(10, 10);
int n = p1 + p2;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.INVALID_ASSIGNMENT]);
verify([source]);
}
@@ -1231,6 +1319,8 @@ void main() {
print(leak);
}
''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(source2, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
await assertNoErrors(source);
verify([source, source2]);
@@ -1255,6 +1345,8 @@ abstract class B {
int b() => new A().a;
}
''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(source2, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
await assertNoErrors(source);
verify([source, source2]);
@@ -1270,6 +1362,7 @@ class A {
abstract class B implements A {
int b() => a;
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1293,6 +1386,8 @@ main() {
new A().a();
}
''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(source2, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
await assertNoErrors(source);
verify([source, source2]);
@@ -1309,6 +1404,7 @@ class A {
abstract class B implements A {
int b() => a();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1323,6 +1419,7 @@ class A {
main() {
new A().a();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1347,6 +1444,8 @@ class B {
int b() => a.a;
}
''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(source2, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
await assertNoErrors(source);
verify([source, source2]);
@@ -1362,6 +1461,7 @@ class A {
abstract class B implements A {
int b() => a;
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1382,6 +1482,7 @@ class A {
/// OK: [A.a], [A.b], [A.c].
f() {}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1405,9 +1506,9 @@ class B {
void b() => new A().a();
}
''');
- List<AnalysisError> errors = analysisContext2.computeErrors(source2);
- expect(errors, hasLength(1));
- expect(errors[0].errorCode, HintCode.INVALID_USE_OF_PROTECTED_MEMBER);
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
+ await assertErrors(source2, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
verify([source, source2]);
}
@@ -1431,6 +1532,8 @@ class B {
}
''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(source2, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
await assertNoErrors(source);
verify([source, source2]);
@@ -1454,6 +1557,7 @@ class Button extends State<Object> {
}
}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1468,6 +1572,7 @@ class A {
class B extends A {
void b() => a();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1482,6 +1587,7 @@ class A {
class B extends Object with A {
void b() => a();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1495,6 +1601,7 @@ class A {
class B extends A {
static m2(A a) => a.m1();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1512,6 +1619,7 @@ class B extends A {
main() {
new B().a();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1527,6 +1635,7 @@ class B extends A {
int b() => a;
}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1542,6 +1651,7 @@ class B extends A {
int b() => a;
}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1559,6 +1669,7 @@ class B extends A {
}
}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1575,6 +1686,7 @@ class A {
}
}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1601,6 +1713,8 @@ class B{
}
}
''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(source2, [HintCode.INVALID_USE_OF_PROTECTED_MEMBER]);
await assertNoErrors(source);
verify([source, source2]);
@@ -1618,6 +1732,7 @@ abstract class B implements A {
a = i;
}
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1632,6 +1747,7 @@ main() {
}''');
// TODO(brianwilkerson) This should produce a hint because the annotation is
// being applied to the wrong kind of declaration.
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1641,6 +1757,7 @@ main() {
options.dart2jsHint = true;
resetWithOptions(options);
Source source = addSource("var v = 1 is double;");
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.IS_DOUBLE]);
verify([source]);
}
@@ -1648,6 +1765,7 @@ main() {
@failingTest
test_isInt() async {
Source source = addSource("var v = 1 is int;");
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.IS_INT]);
verify([source]);
}
@@ -1657,6 +1775,7 @@ main() {
options.dart2jsHint = true;
resetWithOptions(options);
Source source = addSource("var v = 1 is! double;");
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.IS_NOT_DOUBLE]);
verify([source]);
}
@@ -1664,6 +1783,7 @@ main() {
@failingTest
test_isNotInt() async {
Source source = addSource("var v = 1 is! int;");
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.IS_NOT_INT]);
verify([source]);
}
@@ -1678,6 +1798,7 @@ import 'package:js/js.dart';
@JS()
class A { }
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -1691,6 +1812,7 @@ import 'package:js/js.dart';
@JS()
class A { }
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_JS_LIB_ANNOTATION]);
verify([source]);
}
@@ -1703,6 +1825,7 @@ import 'package:js/js.dart';
@JS()
external dynamic exports;
''');
+ await computeAnalysisResult(source);
await assertErrors(source,
[ParserErrorCode.EXTERNAL_FIELD, HintCode.MISSING_JS_LIB_ANNOTATION]);
verify([source]);
@@ -1717,6 +1840,7 @@ import 'package:js/js.dart';
@JS('acxZIndex')
set _currentZIndex(int value) { }
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_JS_LIB_ANNOTATION]);
verify([source]);
}
@@ -1732,6 +1856,7 @@ class A {
void a() { }
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_JS_LIB_ANNOTATION]);
verify([source]);
}
@@ -1743,6 +1868,7 @@ import 'package:js/js.dart';
@JS()
dynamic variable;
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_JS_LIB_ANNOTATION]);
verify([source]);
}
@@ -1752,6 +1878,7 @@ dynamic variable;
import 'dart:async';
Future<int> f() async {}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_RETURN]);
verify([source]);
}
@@ -1762,12 +1889,14 @@ class A {
factory A() {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_RETURN]);
verify([source]);
}
test_missingReturn_function() async {
Source source = addSource("int f() {}");
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_RETURN]);
verify([source]);
}
@@ -1777,6 +1906,7 @@ class A {
class A {
int m() {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_RETURN]);
verify([source]);
}
@@ -1794,6 +1924,7 @@ class B extends A {
{}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MUST_CALL_SUPER]);
verify([source]);
}
@@ -1810,6 +1941,7 @@ class C implements A {
void a() {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, []);
verify([source]);
}
@@ -1832,6 +1964,7 @@ class D extends C {
void a() {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MUST_CALL_SUPER]);
verify([source]);
}
@@ -1850,6 +1983,7 @@ class C extends A {
}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, []);
verify([source]);
}
@@ -1860,6 +1994,7 @@ m(x) {
assert (x?.a);
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -1870,6 +2005,7 @@ m(x) {
return x?.a ? 0 : 1;
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -1880,6 +2016,7 @@ m(x) {
do {} while (x?.a);
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -1890,6 +2027,7 @@ m(x) {
for (var v = x; v?.a; v = v.next) {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -1900,6 +2038,7 @@ m(x) {
if (x?.a) {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -1910,6 +2049,7 @@ m(x) {
if (x?.a && x.b) {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -1920,6 +2060,7 @@ m(x) {
if (x.a && x?.b) {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -1930,6 +2071,7 @@ m(x) {
if (x.a && x.b && x?.c) {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -1940,6 +2082,7 @@ m(x) {
if (x?.a || x.b) {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -1950,6 +2093,7 @@ m(x) {
if (x.a || x?.b) {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -1960,6 +2104,7 @@ m(x) {
if (x.a || x.b || x?.c) {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -1970,6 +2115,7 @@ m(x) {
if (!x?.a) {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -1980,6 +2126,7 @@ m(x) {
if ((x?.a)) {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -1990,6 +2137,7 @@ m(x) {
while (x?.a) {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.NULL_AWARE_IN_CONDITION]);
verify([source]);
}
@@ -2000,6 +2148,7 @@ m(x) {
class A {
bool operator ==(x) {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.OVERRIDE_EQUALS_BUT_NOT_HASH_CODE]);
verify([source]);
}
@@ -2012,6 +2161,7 @@ class B extends A {
@override
final int m = 1;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.OVERRIDE_ON_NON_OVERRIDING_FIELD]);
verify([source]);
}
@@ -2024,6 +2174,7 @@ class B extends A {
@override
int get m => 1;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.OVERRIDE_ON_NON_OVERRIDING_GETTER]);
verify([source]);
}
@@ -2036,6 +2187,7 @@ class B extends A {
@override
int m() => 1;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.OVERRIDE_ON_NON_OVERRIDING_METHOD]);
verify([source]);
}
@@ -2048,6 +2200,7 @@ class B extends A {
@override
set m(int x) {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.OVERRIDE_ON_NON_OVERRIDING_SETTER]);
verify([source]);
}
@@ -2064,6 +2217,7 @@ main() {
new C();
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_REQUIRED_PARAM_WITH_DETAILS]);
verify([source]);
}
@@ -2080,6 +2234,7 @@ main() {
new C();
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_REQUIRED_PARAM]);
verify([source]);
}
@@ -2096,6 +2251,7 @@ main() {
new C();
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_REQUIRED_PARAM]);
verify([source]);
}
@@ -2112,6 +2268,7 @@ main() {
new C(a: 2);
}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2125,6 +2282,7 @@ class C {
C.named() : this();
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_REQUIRED_PARAM]);
verify([source]);
}
@@ -2141,6 +2299,7 @@ class D extends C {
D() : super();
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_REQUIRED_PARAM_WITH_DETAILS]);
verify([source]);
}
@@ -2155,6 +2314,7 @@ main() {
f();
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_REQUIRED_PARAM_WITH_DETAILS]);
verify([source]);
}
@@ -2169,6 +2329,7 @@ f() {
new A().m();
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_REQUIRED_PARAM_WITH_DETAILS]);
verify([source]);
}
@@ -2191,6 +2352,7 @@ f() {
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_REQUIRED_PARAM_WITH_DETAILS]);
verify([source]);
}
@@ -2207,6 +2369,7 @@ class C {
F m() => ({@required String x}) => null;
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.MISSING_REQUIRED_PARAM]);
verify([source]);
}
@@ -2216,6 +2379,7 @@ class C {
m(i) {
bool b = i is Null;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.TYPE_CHECK_IS_NULL]);
verify([source]);
}
@@ -2225,6 +2389,7 @@ m(i) {
m(i) {
bool b = i is! Null;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.TYPE_CHECK_IS_NOT_NULL]);
verify([source]);
}
@@ -2237,6 +2402,7 @@ f(var a) {
return a.m;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNDEFINED_GETTER]);
}
@@ -2253,6 +2419,7 @@ f(var a) {
library L;
export 'lib1.dart' hide a;''');
addNamedSource("/lib1.dart", "library lib1;");
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNDEFINED_HIDDEN_NAME]);
verify([source]);
}
@@ -2262,6 +2429,7 @@ export 'lib1.dart' hide a;''');
library L;
export 'lib1.dart' show a;''');
addNamedSource("/lib1.dart", "library lib1;");
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNDEFINED_SHOWN_NAME]);
verify([source]);
}
@@ -2271,6 +2439,7 @@ export 'lib1.dart' show a;''');
library L;
import 'lib1.dart' hide a;''');
addNamedSource("/lib1.dart", "library lib1;");
+ await computeAnalysisResult(source);
await assertErrors(
source, [HintCode.UNUSED_IMPORT, HintCode.UNDEFINED_HIDDEN_NAME]);
verify([source]);
@@ -2281,6 +2450,7 @@ import 'lib1.dart' hide a;''');
library L;
import 'lib1.dart' show a;''');
addNamedSource("/lib1.dart", "library lib1;");
+ await computeAnalysisResult(source);
await assertErrors(
source, [HintCode.UNUSED_IMPORT, HintCode.UNDEFINED_SHOWN_NAME]);
verify([source]);
@@ -2292,6 +2462,7 @@ f() {
var a = 'str';
a.notAMethodOnString();
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNDEFINED_METHOD]);
}
@@ -2305,6 +2476,7 @@ class B {
a += a2;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNDEFINED_METHOD]);
}
@@ -2316,6 +2488,7 @@ f(var a) {
a + 1;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNDEFINED_OPERATOR]);
}
@@ -2327,6 +2500,7 @@ f(var a) {
a[0]++;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNDEFINED_OPERATOR]);
}
@@ -2338,6 +2512,7 @@ f(var a) {
a[0];
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNDEFINED_OPERATOR]);
}
@@ -2349,6 +2524,7 @@ f(var a) {
a[0] = 1;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNDEFINED_OPERATOR]);
}
@@ -2360,6 +2536,7 @@ f(var a) {
a++;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNDEFINED_OPERATOR]);
}
@@ -2371,6 +2548,7 @@ f(var a) {
++a;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNDEFINED_OPERATOR]);
}
@@ -2382,6 +2560,7 @@ f(var a) {
a.m = 0;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNDEFINED_SETTER]);
}
@@ -2398,6 +2577,7 @@ f(var a) {
m(int i) {
var b = i as Object;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNNECESSARY_CAST]);
verify([source]);
}
@@ -2407,6 +2587,7 @@ m(int i) {
m(num i) {
var b = i as num;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNNECESSARY_CAST]);
verify([source]);
}
@@ -2422,6 +2603,7 @@ class B extends A {
return super.noSuchMethod(y);
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNNECESSARY_NO_SUCH_METHOD]);
verify([source]);
}
@@ -2435,18 +2617,21 @@ class B extends A {
mmm();
noSuchMethod(y) => super.noSuchMethod(y);
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNNECESSARY_NO_SUCH_METHOD]);
verify([source]);
}
test_unnecessaryTypeCheck_null_is_Null() async {
Source source = addSource("bool b = null is Null;");
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNNECESSARY_TYPE_CHECK_TRUE]);
verify([source]);
}
test_unnecessaryTypeCheck_null_not_Null() async {
Source source = addSource("bool b = null is! Null;");
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNNECESSARY_TYPE_CHECK_FALSE]);
verify([source]);
}
@@ -2456,6 +2641,7 @@ class B extends A {
m(i) {
bool b = i is dynamic;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNNECESSARY_TYPE_CHECK_TRUE]);
verify([source]);
}
@@ -2465,6 +2651,7 @@ m(i) {
m(i) {
bool b = i is Object;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNNECESSARY_TYPE_CHECK_TRUE]);
verify([source]);
}
@@ -2474,6 +2661,7 @@ m(i) {
m(i) {
bool b = i is! dynamic;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNNECESSARY_TYPE_CHECK_FALSE]);
verify([source]);
}
@@ -2483,6 +2671,7 @@ m(i) {
m(i) {
bool b = i is! Object;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNNECESSARY_TYPE_CHECK_FALSE]);
verify([source]);
}
@@ -2493,6 +2682,7 @@ m(i) {
class _A {}
class B extends _A {}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2508,6 +2698,7 @@ class _Bar {
}
''';
Source source = addSource(src);
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2518,6 +2709,7 @@ class _Bar {
class _A {}
class B implements _A {}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2529,6 +2721,7 @@ class _A {}
main() {
new _A();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2542,6 +2735,7 @@ class _A {
main() {
_A.F;
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2555,6 +2749,7 @@ class _A {
main() {
_A.m();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2567,6 +2762,7 @@ main() {
var v = new List<_A>();
print(v);
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2583,6 +2779,7 @@ class _A {
}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -2595,6 +2792,7 @@ class _A {
_A.named() {}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -2608,6 +2806,7 @@ main(p) {
}
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -2618,6 +2817,7 @@ main(p) {
class _A {}
main() {
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -2632,6 +2832,7 @@ main() {
}
print(x) {}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -2643,6 +2844,7 @@ enum _MyEnum {A, B, C}
main() {
print(_MyEnum.B);
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2653,6 +2855,7 @@ main() {
enum _MyEnum {A, B, C}
main() {
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -2665,6 +2868,7 @@ main() {
}
print(x) {}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2676,6 +2880,7 @@ main() {
f() {}
f();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2689,6 +2894,7 @@ main() {
}
print(x) {}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2699,6 +2905,7 @@ print(x) {}
main() {
f() {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -2711,6 +2918,7 @@ main() {
_f(p - 1);
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -2722,6 +2930,7 @@ _f() {}
main() {
_f();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2735,6 +2944,7 @@ main() {
}
print(x) {}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2745,6 +2955,7 @@ print(x) {}
_f() {}
main() {
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -2757,6 +2968,7 @@ _f(int p) {
}
main() {
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -2770,6 +2982,7 @@ main(f) {
print('F');
}
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2780,6 +2993,7 @@ main(f) {
typedef _F(a, b);
main(_F f) {
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2792,6 +3006,7 @@ main() {
var v = new List<_F>();
print(v);
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2803,6 +3018,7 @@ typedef _F(a, b);
class A {
_F f;
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2813,6 +3029,7 @@ class A {
typedef _F(a, b);
main() {
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -2826,6 +3043,7 @@ class A {
var v = _g;
}
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2840,6 +3058,7 @@ main(A a) {
var v = a._g;
}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2854,6 +3073,7 @@ main() {
var v = new A()._g;
}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2864,6 +3084,7 @@ main() {
class A {
get _g => null;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -2876,6 +3097,7 @@ class A {
return _g;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -2891,6 +3113,7 @@ class A {
}
print(x) {}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2909,6 +3132,7 @@ class B extends A {
}
print(x) {}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2922,6 +3146,7 @@ class A {
main(A a) {
a._m;
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2935,6 +3160,7 @@ class A {
main() {
new A()._m;
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2948,6 +3174,7 @@ class A {
_m();
}
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2964,6 +3191,7 @@ class A {
class B extends A {
_m() {}
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2977,6 +3205,7 @@ class A<T> {
main(A<int> a) {
a._m(0);
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -2991,6 +3220,7 @@ main() {
var a = new A();
a._m();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -3005,6 +3235,7 @@ main() {
A a = new A();
a._m();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -3021,6 +3252,7 @@ class B extends A {
main(A a) {
a._m();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -3033,6 +3265,7 @@ class A {
}
main() {
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -3046,6 +3279,7 @@ class A {
main() {
A._m();
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -3056,6 +3290,7 @@ main() {
class A {
static _m() {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -3068,6 +3303,7 @@ class A {
_m(p - 1);
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -3081,6 +3317,7 @@ class A {
_s = 42;
}
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -3095,6 +3332,7 @@ main(A a) {
a._s = 42;
}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -3109,6 +3347,7 @@ main() {
new A()._s = 42;
}
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -3119,6 +3358,7 @@ main() {
class A {
set _s(x) {}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -3133,6 +3373,7 @@ class A {
}
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_ELEMENT]);
verify([source]);
}
@@ -3147,6 +3388,7 @@ class A {
}
}
print(x) {}''');
+ await computeAnalysisResult(source);
await assertErrors(source);
verify([source]);
}
@@ -3161,6 +3403,7 @@ class A {
}
}
print(x) {}''');
+ await computeAnalysisResult(source);
await assertErrors(source);
verify([source]);
}
@@ -3172,6 +3415,7 @@ class A {
int _f;
m() => _f;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source);
verify([source]);
}
@@ -3189,6 +3433,7 @@ class B extends A {
int _f;
}
print(x) {}''');
+ await computeAnalysisResult(source);
await assertErrors(source);
verify([source]);
}
@@ -3204,6 +3449,7 @@ main() {
print(a._f);
}
print(x) {}''');
+ await computeAnalysisResult(source);
await assertErrors(source);
verify([source]);
}
@@ -3219,6 +3465,7 @@ main() {
print(a._f);
}
print(x) {}''');
+ await computeAnalysisResult(source);
await assertErrors(source);
verify([source]);
}
@@ -3233,6 +3480,7 @@ main(a) {
print(a._f);
}
print(x) {}''');
+ await computeAnalysisResult(source);
await assertErrors(source);
verify([source]);
}
@@ -3246,6 +3494,7 @@ class A {
_f += 2;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_FIELD]);
verify([source]);
}
@@ -3257,6 +3506,7 @@ class A {
int _f;
A() : _f = 0;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_FIELD]);
verify([source]);
}
@@ -3268,6 +3518,7 @@ class A {
int _f;
A(this._f);
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_FIELD]);
verify([source]);
}
@@ -3279,6 +3530,7 @@ class A {
int _f;
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_FIELD]);
verify([source]);
}
@@ -3292,6 +3544,7 @@ class A {
_f++;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_FIELD]);
verify([source]);
}
@@ -3305,6 +3558,7 @@ class A {
++_f;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_FIELD]);
verify([source]);
}
@@ -3322,6 +3576,7 @@ main(A a) {
a._f = 2;
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_FIELD]);
verify([source]);
}
@@ -3331,6 +3586,8 @@ main(A a) {
library L;
import 'lib1.dart';''');
Source source2 = addNamedSource("/lib1.dart", "library lib1;");
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(source, [HintCode.UNUSED_IMPORT]);
await assertNoErrors(source2);
verify([source, source2]);
@@ -3347,6 +3604,8 @@ one.A a;''');
r'''
library lib1;
class A {}''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(source, [HintCode.UNUSED_IMPORT]);
await assertNoErrors(source2);
verify([source, source2]);
@@ -3370,6 +3629,9 @@ class A {}''');
r'''
library lib2;
class B {}''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
+ await computeAnalysisResult(source3);
await assertErrors(source, [HintCode.UNUSED_IMPORT]);
await assertNoErrors(source2);
await assertNoErrors(source3);
@@ -3387,6 +3649,8 @@ A a;''');
r'''
library lib1;
class A {}''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(source, [HintCode.UNUSED_IMPORT]);
await assertNoErrors(source2);
verify([source, source2]);
@@ -3398,6 +3662,7 @@ class A {}''');
library L;
import 'dart:async';
''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
}
@@ -3413,6 +3678,8 @@ A a;''');
library lib1;
class A {}
class B {}''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(source, [HintCode.UNUSED_IMPORT]);
await assertNoErrors(source2);
verify([source, source2]);
@@ -3426,6 +3693,7 @@ main() {
} on String catch (exception) {
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_CATCH_CLAUSE]);
verify([source]);
}
@@ -3439,6 +3707,7 @@ main() {
print(stack);
}
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -3451,6 +3720,7 @@ main() {
} catch (exception) {
}
}''');
+ await computeAnalysisResult(source);
await assertNoErrors(source);
verify([source]);
}
@@ -3463,6 +3733,7 @@ main() {
} catch (exception, stackTrace) {
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_CATCH_STACK]);
verify([source]);
}
@@ -3477,6 +3748,7 @@ main() {
}
}
print(x) {}''');
+ await computeAnalysisResult(source);
await assertErrors(source);
verify([source]);
}
@@ -3491,6 +3763,7 @@ main() {
}
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source);
verify([source]);
}
@@ -3502,6 +3775,7 @@ main() {
var v = 1;
v = 2;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_LOCAL_VARIABLE]);
verify([source]);
}
@@ -3515,6 +3789,7 @@ class A {
v = 2;
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_LOCAL_VARIABLE]);
verify([source]);
}
@@ -3527,6 +3802,7 @@ main() {
Foo foo;
foo();
}''');
+ await computeAnalysisResult(source);
await assertErrors(source);
verify([source]);
}
@@ -3538,6 +3814,7 @@ main() {
var v = 1;
v += 2;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_LOCAL_VARIABLE]);
verify([source]);
}
@@ -3549,6 +3826,7 @@ main() {
var v = 1;
v++;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_LOCAL_VARIABLE]);
verify([source]);
}
@@ -3560,6 +3838,7 @@ main() {
var v = 1;
++v;
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.UNUSED_LOCAL_VARIABLE]);
verify([source]);
}
@@ -3572,6 +3851,7 @@ main() {
print(++v);
}
print(x) {}''');
+ await computeAnalysisResult(source);
await assertErrors(source);
verify([source]);
}
@@ -3587,6 +3867,7 @@ main() {
a.foo();
}
''');
+ await computeAnalysisResult(source);
await assertErrors(source);
verify([source]);
}
@@ -3602,6 +3883,8 @@ A a;''');
library lib1;
class A {}
class B {}''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(source, [HintCode.UNUSED_SHOWN_NAME]);
await assertNoErrors(source2);
verify([source, source2]);
@@ -3618,6 +3901,8 @@ p.A a;''');
library lib1;
class A {}
class B {}''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(source, [HintCode.UNUSED_SHOWN_NAME]);
await assertNoErrors(source2);
verify([source, source2]);
@@ -3638,6 +3923,8 @@ class A {}
class B {}
class C {}
class D {}''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(
source, [HintCode.UNUSED_SHOWN_NAME, HintCode.UNUSED_SHOWN_NAME]);
await assertNoErrors(source2);
@@ -3660,6 +3947,8 @@ const int var1 = 1;
const int var2 = 2;
const int var3 = 3;
const int var4 = 4;''');
+ await computeAnalysisResult(source);
+ await computeAnalysisResult(source2);
await assertErrors(source, [HintCode.UNUSED_SHOWN_NAME]);
await assertNoErrors(source2);
verify([source, source2]);
@@ -3674,6 +3963,7 @@ class A {
a = f();
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.USE_OF_VOID_RESULT]);
verify([source]);
}
@@ -3687,6 +3977,7 @@ class A {
a = m();
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.USE_OF_VOID_RESULT]);
verify([source]);
}
@@ -3699,6 +3990,7 @@ class A {
for(var a = m();;) {}
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.USE_OF_VOID_RESULT]);
verify([source]);
}
@@ -3711,6 +4003,7 @@ class A {
var a = f();
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.USE_OF_VOID_RESULT]);
verify([source]);
}
@@ -3723,6 +4016,7 @@ class A {
var a = m();
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(source, [HintCode.USE_OF_VOID_RESULT]);
verify([source]);
}
@@ -3735,6 +4029,7 @@ class A {
var a = m(), b = m();
}
}''');
+ await computeAnalysisResult(source);
await assertErrors(
source, [HintCode.USE_OF_VOID_RESULT, HintCode.USE_OF_VOID_RESULT]);
verify([source]);

Powered by Google App Engine
This is Rietveld 408576698