| 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]);
|
|
|