| Index: pkg/analysis_server/test/completion_test.dart
|
| diff --git a/pkg/analysis_server/test/completion_test.dart b/pkg/analysis_server/test/completion_test.dart
|
| index 691a58f00551f3acbf97ba20b3fc6ad4ca572fb7..8e56e6a45d1f334bdaf1a75d7291322795a52694 100644
|
| --- a/pkg/analysis_server/test/completion_test.dart
|
| +++ b/pkg/analysis_server/test/completion_test.dart
|
| @@ -40,41 +40,28 @@ class CompletionTestBuilder {
|
| }
|
|
|
| void buildCommentSnippetTests() {
|
| - buildTests(
|
| - 'testCommentSnippets001',
|
| - '''
|
| + buildTests('testCommentSnippets001', '''
|
| class X {static final num MAX = 0;num yc,xc;mth() {xc = yc = MA!1X;x!2c.abs();num f = M!3AX;}}''',
|
| <String>["1+MAX", "2+xc", "3+MAX"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets002',
|
| - '''
|
| + buildTests('testCommentSnippets002', '''
|
| class Y {String x='hi';mth() {x.l!1ength;int n = 0;x!2.codeUnitAt(n!3);}}''',
|
| <String>["1+length", "2+x", "3+n"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets004',
|
| - '''
|
| + buildTests('testCommentSnippets004', '''
|
| class A {!1int x; !2mth() {!3int y = this.!5x!6;}}class B{}''',
|
| <String>["1+A", "2+B", "3+x", "3-y", "5+mth", "6+x"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets005',
|
| - '''
|
| + buildTests('testCommentSnippets005', '''
|
| class Date { static Date JUN, JUL;}class X { m() { return Da!1te.JU!2L; }}''',
|
| <String>["1+Date", "2+JUN", "2+JUL"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets007',
|
| - '''
|
| + buildTests('testCommentSnippets007', '''
|
| class C {mth(Map x, !1) {}mtf(!2, Map x) {}m() {for (in!3t i=0; i<5; i++); A!4 x;}}class int{}class Arrays{}''',
|
| <String>["1+bool", "2+bool", "3+int", "4+Arrays"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets008',
|
| - '''
|
| -class Date{}final num M = Dat!1''',
|
| - <String>["1+Date"]);
|
| + buildTests('testCommentSnippets008', '''
|
| +class Date{}final num M = Dat!1''', <String>["1+Date"]);
|
|
|
| // space, char, eol are important
|
| buildTests(
|
| @@ -94,138 +81,81 @@ class Maps{}class x extends!5 !2M!3 !4implements!6 !1\n{}''',
|
| failingTests: '46');
|
|
|
| // space, char, eol are important
|
| - buildTests(
|
| - 'testCommentSnippets010',
|
| - '''
|
| -class x implements !1{}''',
|
| - <String>["1+Map"]);
|
| + buildTests('testCommentSnippets010', '''
|
| +class x implements !1{}''', <String>["1+Map"]);
|
|
|
| // space, char, eol are important
|
| - buildTests(
|
| - 'testCommentSnippets011',
|
| - '''
|
| -class x implements M!1{}''',
|
| - <String>["1+Map"]);
|
| + buildTests('testCommentSnippets011', '''
|
| +class x implements M!1{}''', <String>["1+Map"]);
|
|
|
| // space, char, eol are important
|
| - buildTests(
|
| - 'testCommentSnippets012',
|
| - '''
|
| -class x implements M!1\n{}''',
|
| - <String>["1+Map"]);
|
| + buildTests('testCommentSnippets012', '''
|
| +class x implements M!1\n{}''', <String>["1+Map"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets013',
|
| - '''
|
| -class x !2{!1}!3''',
|
| - <String>["1+num", "2-num", "3+num"]);
|
| + buildTests('testCommentSnippets013', '''
|
| +class x !2{!1}!3''', <String>["1+num", "2-num", "3+num"]);
|
|
|
| // trailing space is important
|
| - buildTests(
|
| - 'testCommentSnippets014',
|
| - '''
|
| -typedef n!1 ;''',
|
| - <String>["1+num"]);
|
| + buildTests('testCommentSnippets014', '''
|
| +typedef n!1 ;''', <String>["1+num"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets015',
|
| - '''
|
| -class D {f(){} g(){f!1(f!2);}}''',
|
| - <String>["1+f", "2+f"]);
|
| + buildTests('testCommentSnippets015', '''
|
| +class D {f(){} g(){f!1(f!2);}}''', <String>["1+f", "2+f"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets016',
|
| - '''
|
| -class F {m() { m(); !1}}''',
|
| - <String>["1+m"]);
|
| + buildTests('testCommentSnippets016', '''
|
| +class F {m() { m(); !1}}''', <String>["1+m"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets017',
|
| - '''
|
| -class F {var x = !1false;}''',
|
| - <String>["1+true"]);
|
| + buildTests('testCommentSnippets017', '''
|
| +class F {var x = !1false;}''', <String>["1+true"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets018',
|
| - '''
|
| + buildTests('testCommentSnippets018', '''
|
| class Map{}class Arrays{}class C{ m(!1){} n(!2 x, q)''',
|
| <String>["1+Map", "1-void", "1-null", "2+Arrays", "2-void", "2-null"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets019',
|
| - '''
|
| -class A{m(){Object x;x.!1/**/clear()''',
|
| - <String>["1+toString"]);
|
| + buildTests('testCommentSnippets019', '''
|
| +class A{m(){Object x;x.!1/**/clear()''', <String>["1+toString"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets020',
|
| - '''
|
| + buildTests('testCommentSnippets020', '''
|
| classMap{}class tst {var newt;void newf(){}test() {var newz;new!1/**/;}}''',
|
| <String>["1+newt", "1+newf", "1+newz", "1-Map"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets021',
|
| - '''
|
| + buildTests('testCommentSnippets021', '''
|
| class Map{}class tst {var newt;void newf(){}test() {var newz;new !1/**/;}}''',
|
| <String>["1+Map", "1-newt"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets022',
|
| - '''
|
| -class Map{}class F{m(){new !1;}}''',
|
| - <String>["1+Map"]);
|
| + buildTests('testCommentSnippets022', '''
|
| +class Map{}class F{m(){new !1;}}''', <String>["1+Map"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets022a',
|
| - '''
|
| -class Map{}class F{m(){new !1''',
|
| - <String>["1+Map"]);
|
| + buildTests('testCommentSnippets022a', '''
|
| +class Map{}class F{m(){new !1''', <String>["1+Map"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets022b',
|
| - '''
|
| + buildTests('testCommentSnippets022b', '''
|
| class Map{factory Map.qq(){return null;}}class F{m(){new Map.!1qq();}}''',
|
| <String>["1+qq"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets023',
|
| - '''
|
| + buildTests('testCommentSnippets023', '''
|
| class X {X c; X(this.!1c!3) : super() {c.!2}}''',
|
| <String>["1+c", "2+c", "3+c"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets024',
|
| - '''
|
| -class q {m(Map q){var x;m(!1)}n(){var x;n(!2)}}''',
|
| - <String>["1+x", "2+x"]);
|
| + buildTests('testCommentSnippets024', '''
|
| +class q {m(Map q){var x;m(!1)}n(){var x;n(!2)}}''', <String>["1+x", "2+x"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets025',
|
| - '''
|
| + buildTests('testCommentSnippets025', '''
|
| class q {num m() {var q; num x=!1 q!3 + !2/**/;}}''',
|
| <String>["1+q", "2+q", "3+q"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets026',
|
| - '''
|
| -class List{}class a implements !1{}''',
|
| - <String>["1+List"]);
|
| + buildTests('testCommentSnippets026', '''
|
| +class List{}class a implements !1{}''', <String>["1+List"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets027',
|
| - '''
|
| + buildTests('testCommentSnippets027', '''
|
| class String{}class List{}class test <X extends !1String!2> {}''',
|
| <String>["1+List", "2+String", "2-List"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets028',
|
| - '''
|
| + buildTests('testCommentSnippets028', '''
|
| class String{}class List{}class DateTime{}typedef T Y<T extends !1>(List input);''',
|
| <String>["1+DateTime", "1+String"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets029',
|
| - '''
|
| + buildTests('testCommentSnippets029', '''
|
| interface A<X> default B<X extends !1List!2> {}''',
|
| <String>["1+DateTime", "2+List"]);
|
|
|
| @@ -251,117 +181,74 @@ class Fit{}class Bar<T extends Fooa> {const !2F!1ara();}''',
|
| failingTests: '1');
|
|
|
| // Type propagation
|
| - buildTests(
|
| - 'testCommentSnippets033',
|
| - '''
|
| + buildTests('testCommentSnippets033', '''
|
| class List{add(){}length(){}}t1() {var x;if (x is List) {x.!1add(3);}}''',
|
| <String>["1+add", "1+length"]);
|
|
|
| // Type propagation
|
| - buildTests(
|
| - 'testCommentSnippets035',
|
| - '''
|
| + buildTests('testCommentSnippets035', '''
|
| class List{clear(){}length(){}}t3() {var x=new List(), y=x.!1length();x.!2clear();}''',
|
| <String>["1+length", "2+clear"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets036',
|
| - '''
|
| -class List{}t3() {var x=new List!1}''',
|
| - <String>["1+List"]);
|
| + buildTests('testCommentSnippets036', '''
|
| +class List{}t3() {var x=new List!1}''', <String>["1+List"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets037',
|
| - '''
|
| + buildTests('testCommentSnippets037', '''
|
| class List{factory List.from(){}}t3() {var x=new List.!1}''',
|
| <String>["1+from"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets038',
|
| - '''
|
| -f(){int xa; String s = '\$x!1';}''',
|
| - <String>["1+xa"]);
|
| + buildTests('testCommentSnippets038', '''
|
| +f(){int xa; String s = '\$x!1';}''', <String>["1+xa"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets038a',
|
| - '''
|
| -int xa; String s = '\$x!1\'''',
|
| - <String>["1+xa"]);
|
| + buildTests('testCommentSnippets038a', '''
|
| +int xa; String s = '\$x!1\'''', <String>["1+xa"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets039',
|
| - '''
|
| -f(){int xa; String s = '\$!1';}''',
|
| - <String>["1+xa"]);
|
| + buildTests('testCommentSnippets039', '''
|
| +f(){int xa; String s = '\$!1';}''', <String>["1+xa"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets039a',
|
| - '''
|
| -int xa; String s = '\$!1\'''',
|
| - <String>["1+xa"]);
|
| + buildTests('testCommentSnippets039a', '''
|
| +int xa; String s = '\$!1\'''', <String>["1+xa"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets040',
|
| - '''
|
| + buildTests('testCommentSnippets040', '''
|
| class List{add(){}}class Map{}class X{m(){List list; list.!1 Map map;}}''',
|
| <String>["1+add"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets041',
|
| - '''
|
| + buildTests('testCommentSnippets041', '''
|
| class List{add(){}length(){}}class X{m(){List list; list.!1 zox();}}''',
|
| <String>["1+add"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets042',
|
| - '''
|
| + buildTests('testCommentSnippets042', '''
|
| class DateTime{static const int WED=3;int get day;}fd(){DateTime d=new DateTime.now();d.!1WED!2;}''',
|
| <String>["1+day", "2-WED"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets043',
|
| - '''
|
| -class L{var k;void.!1}''',
|
| - <String>["1-k"]);
|
| + buildTests('testCommentSnippets043', '''
|
| +class L{var k;void.!1}''', <String>["1-k"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets044',
|
| - '''
|
| + buildTests('testCommentSnippets044', '''
|
| class List{}class XXX {XXX.fisk();}main() {main(); new !1}}''',
|
| <String>["1+List", "1+XXX.fisk"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets047',
|
| - '''
|
| -f(){int x;int y=!1;}''',
|
| - <String>["1+x"]);
|
| + buildTests('testCommentSnippets047', '''
|
| +f(){int x;int y=!1;}''', <String>["1+x"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets048',
|
| - '''
|
| -import 'dart:convert' as json;f() {var x=new js!1}''',
|
| - <String>["1+json"]);
|
| + buildTests('testCommentSnippets048', '''
|
| +import 'dart:convert' as json;f() {var x=new js!1}''', <String>["1+json"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets049',
|
| - '''
|
| + buildTests('testCommentSnippets049', '''
|
| import 'dart:convert' as json;
|
| import 'dart:convert' as jxx;
|
| class JsonDecoderX{}
|
| -f1() {var x=new !2j!1s!3}''',
|
| - <String>[
|
| - "1+json",
|
| - "1+jxx",
|
| - "2+json",
|
| - "2+jxx",
|
| - "2-JsonDecoder",
|
| - "3+json",
|
| - "3-jxx"
|
| - ]);
|
| -
|
| - buildTests(
|
| - 'testCommentSnippets050',
|
| - '''
|
| +f1() {var x=new !2j!1s!3}''', <String>[
|
| + "1+json",
|
| + "1+jxx",
|
| + "2+json",
|
| + "2+jxx",
|
| + "2-JsonDecoder",
|
| + "3+json",
|
| + "3-jxx"
|
| + ]);
|
| +
|
| + buildTests('testCommentSnippets050', '''
|
| class xdr {
|
| xdr();
|
| const xdr.a(a,b,c);
|
| @@ -372,24 +259,21 @@ class xa{}
|
| k() {
|
| new x!1dr().f();
|
| const x!2dr.!3a(1, 2, 3);
|
| -}''',
|
| - <String>[
|
| - "1+xdr",
|
| - "1+xa",
|
| - "1+xdr.a",
|
| - "1+xdr.b",
|
| - "2+xa", // suggest default constructor
|
| - "2+xdr", // suggest normal constructor
|
| - "2+xdr.a",
|
| - "2+xdr.b", // suggest named constructor
|
| - "3+b", // suggest named constructor
|
| - "3+a"
|
| - ]);
|
| +}''', <String>[
|
| + "1+xdr",
|
| + "1+xa",
|
| + "1+xdr.a",
|
| + "1+xdr.b",
|
| + "2+xa", // suggest default constructor
|
| + "2+xdr", // suggest normal constructor
|
| + "2+xdr.a",
|
| + "2+xdr.b", // suggest named constructor
|
| + "3+b", // suggest named constructor
|
| + "3+a"
|
| + ]);
|
|
|
| // Type propagation.
|
| - buildTests(
|
| - 'testCommentSnippets051',
|
| - '''
|
| + buildTests('testCommentSnippets051', '''
|
| class String{int length(){} String toUpperCase(){} bool isEmpty(){}}class Map{getKeys(){}}
|
| void r() {
|
| var v;
|
| @@ -397,13 +281,10 @@ void r() {
|
| v.!1length;
|
| v.!2getKeys;
|
| }
|
| -}''',
|
| - <String>["1+length", "2-getKeys"]);
|
| +}''', <String>["1+length", "2-getKeys"]);
|
|
|
| // Type propagation.
|
| - buildTests(
|
| - 'testCommentSnippets052',
|
| - '''
|
| + buildTests('testCommentSnippets052', '''
|
| class String{int length(){} String toUpperCase(){} bool isEmpty(){}}class Map{getKeys(){}}
|
| void r() {
|
| List<String> values = ['a','b','c'];
|
| @@ -411,13 +292,10 @@ void r() {
|
| v.!1toUpperCase;
|
| v.!2getKeys;
|
| }
|
| -}''',
|
| - <String>["1+toUpperCase", "2-getKeys"]);
|
| +}''', <String>["1+toUpperCase", "2-getKeys"]);
|
|
|
| // Type propagation.
|
| - buildTests(
|
| - 'testCommentSnippets053',
|
| - '''
|
| + buildTests('testCommentSnippets053', '''
|
| class String{int length(){} String toUpperCase(){} bool isEmpty(){}}class Map{getKeys(){}}
|
| void r() {
|
| var v;
|
| @@ -425,12 +303,9 @@ void r() {
|
| v.!1toUpperCase;
|
| v.!2getKeys;
|
| }
|
| -}''',
|
| - <String>["1+toUpperCase", "2-getKeys"]);
|
| +}''', <String>["1+toUpperCase", "2-getKeys"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets054',
|
| - '''
|
| + buildTests('testCommentSnippets054', '''
|
| class String{int length(){} String toUpperCase(){} bool isEmpty(){}}class Map{getKeys(){}}
|
| void r() {
|
| var v;
|
| @@ -438,45 +313,35 @@ void r() {
|
| v.!2toUpperCase;
|
| v.!3getKeys;
|
| }
|
| -}''',
|
| - <String>["1+isEmpty", "2+toUpperCase", "3-getKeys"]);
|
| +}''', <String>["1+isEmpty", "2+toUpperCase", "3-getKeys"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets055',
|
| - '''
|
| + buildTests('testCommentSnippets055', '''
|
| class String{int length(){} String toUpperCase(){} bool isEmpty(){}}class Map{getKeys(){}}
|
| void r() {
|
| String v;
|
| if (v is Object) {
|
| v.!1toUpperCase;
|
| }
|
| -}''',
|
| - <String>["1+toUpperCase"]);
|
| +}''', <String>["1+toUpperCase"]);
|
|
|
| // Type propagation.
|
| - buildTests(
|
| - 'testCommentSnippets056',
|
| - '''
|
| + buildTests('testCommentSnippets056', '''
|
| class String{int length(){} String toUpperCase(){} bool isEmpty(){}}class Map{getKeys(){}}
|
| void f(var v) {
|
| if (v is!! String) {
|
| return;
|
| }
|
| v.!1toUpperCase;
|
| -}''',
|
| - <String>["1+toUpperCase"]);
|
| +}''', <String>["1+toUpperCase"]);
|
|
|
| // Type propagation.
|
| - buildTests(
|
| - 'testCommentSnippets057',
|
| - '''
|
| + buildTests('testCommentSnippets057', '''
|
| class String{int length(){} String toUpperCase(){} bool isEmpty(){}}class Map{getKeys(){}}
|
| void f(var v) {
|
| if ((v as String).!2length == 0) {
|
| v.!1toUpperCase;
|
| }
|
| -}''',
|
| - <String>["1+toUpperCase", "2+length"]);
|
| +}''', <String>["1+toUpperCase", "2+length"]);
|
|
|
| buildTests(
|
| 'testCommentSnippets058',
|
| @@ -490,15 +355,10 @@ void r() {
|
| <String>["1+v", "2+void"],
|
| failingTests: '2');
|
|
|
| - buildTests(
|
| - 'testCommentSnippets059',
|
| - '''
|
| -f(){((int x) => x+4).!1call(1);}''',
|
| - <String>["1-call"]);
|
| + buildTests('testCommentSnippets059', '''
|
| +f(){((int x) => x+4).!1call(1);}''', <String>["1-call"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets060',
|
| - '''
|
| + buildTests('testCommentSnippets060', '''
|
| class Map{}
|
| abstract class MM extends Map{factory MM() => new Map();}
|
| class Z {
|
| @@ -506,30 +366,22 @@ class Z {
|
| f() {
|
| x!1
|
| }
|
| -}''',
|
| - <String>["1+x", "1-x[]"]);
|
| +}''', <String>["1+x", "1-x[]"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets061',
|
| - '''
|
| + buildTests('testCommentSnippets061', '''
|
| class A{m(){!1f(3);!2}}n(){!3f(3);!4}f(x)=>x*3;''',
|
| <String>["1+f", "1+n", "2+f", "2+n", "3+f", "3+n", "4+f", "4+n"]);
|
|
|
| // Type propagation.
|
| - buildTests(
|
| - 'testCommentSnippets063',
|
| - '''
|
| + buildTests('testCommentSnippets063', '''
|
| class String{int length(){} String toUpperCase(){} bool isEmpty(){}}class Map{getKeys(){}}
|
| void r(var v) {
|
| v.!1toUpperCase;
|
| assert(v is String);
|
| v.!2toUpperCase;
|
| -}''',
|
| - <String>["1-toUpperCase", "2+toUpperCase"]);
|
| +}''', <String>["1-toUpperCase", "2+toUpperCase"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets064',
|
| - '''
|
| + buildTests('testCommentSnippets064', '''
|
| class Spline {
|
| Line c;
|
| Spline a() {
|
| @@ -552,24 +404,21 @@ class Line {
|
| Spline h() {
|
| return null;
|
| }
|
| -}''',
|
| - <String>[
|
| - "1+a",
|
| - "2+b",
|
| - "1-g",
|
| - "2-h",
|
| - "3+b",
|
| - "4+c",
|
| - "5+a",
|
| - "6+c",
|
| - "7+g",
|
| - "8+j",
|
| - "9+h"
|
| - ]);
|
| -
|
| - buildTests(
|
| - 'testCommentSnippets065',
|
| - '''
|
| +}''', <String>[
|
| + "1+a",
|
| + "2+b",
|
| + "1-g",
|
| + "2-h",
|
| + "3+b",
|
| + "4+c",
|
| + "5+a",
|
| + "6+c",
|
| + "7+g",
|
| + "8+j",
|
| + "9+h"
|
| + ]);
|
| +
|
| + buildTests('testCommentSnippets065', '''
|
| class Spline {
|
| Line c;
|
| Spline a() {
|
| @@ -591,12 +440,9 @@ class Line {
|
| Spline h() {
|
| return null;
|
| }
|
| -}''',
|
| - <String>["1+a"]);
|
| +}''', <String>["1+a"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets066',
|
| - '''
|
| + buildTests('testCommentSnippets066', '''
|
| class Spline {
|
| Line c;
|
| Spline a() {
|
| @@ -618,12 +464,9 @@ class Line {
|
| Spline h() {
|
| return null;
|
| }
|
| -}''',
|
| - <String>["1+b"]);
|
| +}''', <String>["1+b"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets067',
|
| - '''
|
| + buildTests('testCommentSnippets067', '''
|
| class Spline {
|
| Line c;
|
| Spline a() {
|
| @@ -645,12 +488,9 @@ class Line {
|
| Spline h() {
|
| return null;
|
| }
|
| -}''',
|
| - <String>["1+b"]);
|
| +}''', <String>["1+b"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets068',
|
| - '''
|
| + buildTests('testCommentSnippets068', '''
|
| class Spline {
|
| Line c;
|
| Spline a() {
|
| @@ -672,12 +512,9 @@ class Line {
|
| Spline h() {
|
| return null;
|
| }
|
| -}''',
|
| - <String>["1+c"]);
|
| +}''', <String>["1+c"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets069',
|
| - '''
|
| + buildTests('testCommentSnippets069', '''
|
| class Spline {
|
| Line c;
|
| Spline a() {
|
| @@ -699,12 +536,9 @@ class Line {
|
| Spline h() {
|
| return null;
|
| }
|
| -}''',
|
| - <String>["1+c"]);
|
| +}''', <String>["1+c"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets070',
|
| - '''
|
| + buildTests('testCommentSnippets070', '''
|
| class Spline {
|
| Line c;
|
| Spline a() {
|
| @@ -726,12 +560,9 @@ class Line {
|
| Spline h() {
|
| return null;
|
| }
|
| -}''',
|
| - <String>["1+b"]);
|
| +}''', <String>["1+b"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets072',
|
| - '''
|
| + buildTests('testCommentSnippets072', '''
|
| class X {
|
| int _p;
|
| set p(int x) => _p = x;
|
| @@ -739,12 +570,9 @@ class X {
|
| f() {
|
| X x = new X();
|
| x.!1p = 3;
|
| -}''',
|
| - <String>["1+p"]);
|
| +}''', <String>["1+p"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets073',
|
| - '''
|
| + buildTests('testCommentSnippets073', '''
|
| class X {
|
| m() {
|
| JSON.stri!1;
|
| @@ -753,41 +581,28 @@ class X {
|
| }
|
| class JSON {
|
| static stringify() {}
|
| -}''',
|
| - <String>["1+stringify"]);
|
| +}''', <String>["1+stringify"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets074',
|
| - '''
|
| + buildTests('testCommentSnippets074', '''
|
| class X {
|
| m() {
|
| _x!1
|
| }
|
| _x1(){}
|
| -}''',
|
| - <String>["1+_x1"]);
|
| +}''', <String>["1+_x1"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets075',
|
| - '''
|
| -p(x)=>0;var E;f(q)=>!1p(!2E);''',
|
| - <String>["1+p", "2+E"]);
|
| + buildTests('testCommentSnippets075', '''
|
| +p(x)=>0;var E;f(q)=>!1p(!2E);''', <String>["1+p", "2+E"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets076',
|
| - '''
|
| + buildTests('testCommentSnippets076', '''
|
| class Map<K,V>{}class List<E>{}class int{}main() {var m=new Map<Lis!1t<Map<int,in!2t>>,List<!3int>>();}''',
|
| <String>["1+List", "2+int", "3+int"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets076a',
|
| - '''
|
| + buildTests('testCommentSnippets076a', '''
|
| class Map<K,V>{}class List<E>{}class int{}main() {var m=new Map<Lis!1t<Map<int,in!2t>>,List<!3>>();}''',
|
| <String>["1+List", "2+int", "3+int"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets077',
|
| - '''
|
| + buildTests('testCommentSnippets077', '''
|
| class FileMode {
|
| static const READ = const FileMode._internal(0);
|
| static const WRITE = const FileMode._internal(1);
|
| @@ -801,30 +616,23 @@ class File {
|
| factory File(String path) => null;
|
| factory File.fromPath(Path path) => null;
|
| }
|
| -f() => new Fil!1''',
|
| - <String>[
|
| - "1+File",
|
| - "1+File.fromPath",
|
| - "1+FileMode",
|
| - "1+FileMode._internal1",
|
| - "1+FileMode._internal"
|
| - ]);
|
| -
|
| - buildTests(
|
| - 'testCommentSnippets078',
|
| - '''
|
| +f() => new Fil!1''', <String>[
|
| + "1+File",
|
| + "1+File.fromPath",
|
| + "1+FileMode",
|
| + "1+FileMode._internal1",
|
| + "1+FileMode._internal"
|
| + ]);
|
| +
|
| + buildTests('testCommentSnippets078', '''
|
| class Map{static from()=>null;clear(){}}void main() { Map.!1 }''',
|
| <String>["1+from", "1-clear"]); // static method, instance method
|
|
|
| - buildTests(
|
| - 'testCommentSnippets079',
|
| - '''
|
| + buildTests('testCommentSnippets079', '''
|
| class Map{static from()=>null;clear(){}}void main() { Map s; s.!1 }''',
|
| <String>["1-from", "1+clear"]); // static method, instance method
|
|
|
| - buildTests(
|
| - 'testCommentSnippets080',
|
| - '''
|
| + buildTests('testCommentSnippets080', '''
|
| class RuntimeError{var message;}void main() { RuntimeError.!1 }''',
|
| <String>["1-message"]); // field
|
|
|
| @@ -835,37 +643,23 @@ class Foo {this.!1}''',
|
| <String>["1-Object"],
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'testCommentSnippets082',
|
| - '''
|
| + buildTests('testCommentSnippets082', '''
|
| class HttpRequest {}
|
| class HttpResponse {}
|
| main() {
|
| var v = (HttpRequest req, HttpResp!1)
|
| - }''',
|
| - <String>["1+HttpResponse"]);
|
| + }''', <String>["1+HttpResponse"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets083',
|
| - '''
|
| -main() {(.!1)}''',
|
| - <String>["1-toString"]);
|
| + buildTests('testCommentSnippets083', '''
|
| +main() {(.!1)}''', <String>["1-toString"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets083a',
|
| - '''
|
| -main() { .!1 }''',
|
| - <String>["1-toString"]);
|
| + buildTests('testCommentSnippets083a', '''
|
| +main() { .!1 }''', <String>["1-toString"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets083b',
|
| - '''
|
| -main() { null.!1 }''',
|
| - <String>["1+toString"]);
|
| + buildTests('testCommentSnippets083b', '''
|
| +main() { null.!1 }''', <String>["1+toString"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets085',
|
| - '''
|
| + buildTests('testCommentSnippets085', '''
|
| class List{}class Map{}class Z extends List with !1Ma!2p {}''',
|
| <String>["1+List", "1+Map", "2+Map", "2-List"]);
|
|
|
| @@ -876,15 +670,11 @@ class Q{f(){xy() {!2};x!1y();}}''',
|
| <String>["1+xy", "2+f", "2-xy"],
|
| failingTests: '2');
|
|
|
| - buildTests(
|
| - 'testCommentSnippets087',
|
| - '''
|
| + buildTests('testCommentSnippets087', '''
|
| class Map{}class Q extends Object with !1Map {}''',
|
| <String>["1+Map", "1-HashMap"]);
|
|
|
| - buildTests(
|
| - 'testCommentSnippets088',
|
| - '''
|
| + buildTests('testCommentSnippets088', '''
|
| class A {
|
| int f;
|
| B m(){}
|
| @@ -896,8 +686,7 @@ class B extends A {
|
| class Z {
|
| B q;
|
| f() {q.!1}
|
| -}''',
|
| - <String>["1+f", "1+m"]); // f->num, m()->A
|
| +}''', <String>["1+f", "1+m"]); // f->num, m()->A
|
|
|
| buildTests(
|
| 'testCommentSnippets089',
|
| @@ -954,19 +743,13 @@ class Q {
|
| ],
|
| failingTests: '123');
|
|
|
| - buildTests(
|
| - 'testCommentSnippets090',
|
| - '''
|
| -class X { f() { var a = 'x'; a.!1 }}''',
|
| - <String>["1+length"]);
|
| + buildTests('testCommentSnippets090', '''
|
| +class X { f() { var a = 'x'; a.!1 }}''', <String>["1+length"]);
|
| }
|
|
|
| void buildCompletionTests() {
|
| - buildTests(
|
| - 'testCompletion_alias_field',
|
| - '''
|
| -typedef int fnint(int k); fn!1int x;''',
|
| - <String>["1+fnint"]);
|
| + buildTests('testCompletion_alias_field', '''
|
| +typedef int fnint(int k); fn!1int x;''', <String>["1+fnint"]);
|
|
|
| buildTests(
|
| 'testCompletion_annotation_argumentList',
|
| @@ -1014,75 +797,55 @@ main() {
|
| ],
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'testCompletion_annotation_type_inClass_withoutMember',
|
| - '''
|
| + buildTests('testCompletion_annotation_type_inClass_withoutMember', '''
|
| class AAA {
|
| const AAA();
|
| }
|
|
|
| class C {
|
| @A!1
|
| -}''',
|
| - <String>["1+AAA" /*":" + ProposalKind.CONSTRUCTOR*/]);
|
| +}''', <String>["1+AAA" /*":" + ProposalKind.CONSTRUCTOR*/]);
|
|
|
| - buildTests(
|
| - 'testCompletion_argument_typeName',
|
| - '''
|
| + buildTests('testCompletion_argument_typeName', '''
|
| class Enum {
|
| static Enum FOO = new Enum();
|
| }
|
| f(Enum e) {}
|
| main() {
|
| f(En!1);
|
| -}''',
|
| - <String>["1+Enum"]);
|
| +}''', <String>["1+Enum"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_arguments_ignoreEmpty',
|
| - '''
|
| + buildTests('testCompletion_arguments_ignoreEmpty', '''
|
| class A {
|
| test() {}
|
| }
|
| main(A a) {
|
| a.test(!1);
|
| -}''',
|
| - <String>["1-test"]);
|
| +}''', <String>["1-test"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_as_asIdentifierPrefix',
|
| - '''
|
| + buildTests('testCompletion_as_asIdentifierPrefix', '''
|
| main(p) {
|
| var asVisible;
|
| var v = as!1;
|
| -}''',
|
| - <String>["1+asVisible"]);
|
| +}''', <String>["1+asVisible"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_as_asPrefixedIdentifierStart',
|
| - '''
|
| + buildTests('testCompletion_as_asPrefixedIdentifierStart', '''
|
| class A {
|
| var asVisible;
|
| }
|
|
|
| main(A p) {
|
| var v = p.as!1;
|
| -}''',
|
| - <String>["1+asVisible"]);
|
| +}''', <String>["1+asVisible"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_as_incompleteStatement',
|
| - '''
|
| + buildTests('testCompletion_as_incompleteStatement', '''
|
| class MyClass {}
|
| main(p) {
|
| var justSomeVar;
|
| var v = p as !1
|
| -}''',
|
| - <String>["1+MyClass", "1-justSomeVar"]);
|
| +}''', <String>["1+MyClass", "1-justSomeVar"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_cascade',
|
| - '''
|
| + buildTests('testCompletion_cascade', '''
|
| class A {
|
| aaa() {}
|
| }
|
| @@ -1090,42 +853,29 @@ class A {
|
|
|
| main(A a) {
|
| a..!1 aaa();
|
| -}''',
|
| - <String>["1+aaa", "1-main"]);
|
| +}''', <String>["1+aaa", "1-main"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_combinator_afterComma',
|
| - '''
|
| + buildTests('testCompletion_combinator_afterComma', '''
|
| import 'dart:math' show cos, !1;''',
|
| <String>["1+PI", "1+sin", "1+Random", "1-String"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_combinator_ended',
|
| - '''
|
| + buildTests('testCompletion_combinator_ended', '''
|
| import 'dart:math' show !1;"''',
|
| <String>["1+PI", "1+sin", "1+Random", "1-String"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_combinator_export',
|
| - '''
|
| + buildTests('testCompletion_combinator_export', '''
|
| export 'dart:math' show !1;"''',
|
| <String>["1+PI", "1+sin", "1+Random", "1-String"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_combinator_hide',
|
| - '''
|
| + buildTests('testCompletion_combinator_hide', '''
|
| import 'dart:math' hide !1;"''',
|
| <String>["1+PI", "1+sin", "1+Random", "1-String"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_combinator_notEnded',
|
| - '''
|
| + buildTests('testCompletion_combinator_notEnded', '''
|
| import 'dart:math' show !1"''',
|
| <String>["1+PI", "1+sin", "1+Random", "1-String"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_combinator_usePrefix',
|
| - '''
|
| + buildTests('testCompletion_combinator_usePrefix', '''
|
| import 'dart:math' show s!1"''',
|
| <String>["1+sin", "1+sqrt", "1-cos", "1-String"]);
|
|
|
| @@ -1159,21 +909,16 @@ main() {
|
| <String>["1+Random:ARGUMENT_LIST"],
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'testCompletion_dartDoc_reference_forClass',
|
| - '''
|
| + buildTests('testCompletion_dartDoc_reference_forClass', '''
|
| /**
|
| * [int!1]
|
| * [method!2]
|
| */
|
| class AAA {
|
| methodA() {}
|
| -}''',
|
| - <String>["1+int", "1-method", "2+methodA", "2-int"]);
|
| +}''', <String>["1+int", "1-method", "2+methodA", "2-int"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_dartDoc_reference_forConstructor',
|
| - '''
|
| + buildTests('testCompletion_dartDoc_reference_forConstructor', '''
|
| class A {
|
| /**
|
| * [aa!1]
|
| @@ -1182,8 +927,7 @@ class A {
|
| */
|
| A.named(aaa, bbb) {}
|
| methodA() {}
|
| -}''',
|
| - <String>["1+aaa", "1-bbb", "2+int", "2-double", "3+methodA"]);
|
| +}''', <String>["1+aaa", "1-bbb", "2+int", "2-double", "3+methodA"]);
|
|
|
| buildTests(
|
| 'testCompletion_dartDoc_reference_forFunction',
|
| @@ -1227,9 +971,7 @@ typedef FunctionB() {}''',
|
| ],
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'testCompletion_dartDoc_reference_forMethod',
|
| - '''
|
| + buildTests('testCompletion_dartDoc_reference_forMethod', '''
|
| class A {
|
| /**
|
| * [aa!1]
|
| @@ -1238,20 +980,17 @@ class A {
|
| */
|
| methodA(aaa, bbb) {}
|
| methodB() {}
|
| -}''',
|
| - <String>[
|
| - "1+aaa",
|
| - "1-bbb",
|
| - "2+int",
|
| - "2-double",
|
| - "3+methodA",
|
| - "3+methodB",
|
| - "3-int"
|
| - ]);
|
| -
|
| - buildTests(
|
| - 'testCompletion_dartDoc_reference_incomplete',
|
| - '''
|
| +}''', <String>[
|
| + "1+aaa",
|
| + "1-bbb",
|
| + "2+int",
|
| + "2-double",
|
| + "3+methodA",
|
| + "3+methodB",
|
| + "3-int"
|
| + ]);
|
| +
|
| + buildTests('testCompletion_dartDoc_reference_incomplete', '''
|
| /**
|
| * [doubl!1 some text
|
| * other text
|
| @@ -1265,66 +1004,53 @@ class B {}
|
| /**
|
| * [!3] some text
|
| */
|
| -class C {}''',
|
| - <String>[
|
| - "1+double",
|
| - "1-int",
|
| - "2+int",
|
| - "2+String",
|
| - "3+int",
|
| - "3+String"
|
| - ]);
|
| -
|
| - buildTests(
|
| - 'testCompletion_double_inFractionPart',
|
| - '''
|
| +class C {}''', <String>[
|
| + "1+double",
|
| + "1-int",
|
| + "2+int",
|
| + "2+String",
|
| + "3+int",
|
| + "3+String"
|
| + ]);
|
| +
|
| + buildTests('testCompletion_double_inFractionPart', '''
|
| main() {
|
| 1.0!1
|
| -}''',
|
| - <String>["1-abs", "1-main"]);
|
| +}''', <String>["1-abs", "1-main"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_enum',
|
| - '''
|
| + buildTests('testCompletion_enum', '''
|
| enum MyEnum {A, B, C}
|
| main() {
|
| MyEnum.!1;
|
| -}''',
|
| - <String>["1+values", "1+A", "1+B", "1+C"]);
|
| +}''', <String>["1+values", "1+A", "1+B", "1+C"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_exactPrefix_hasHigherRelevance',
|
| - '''
|
| + buildTests('testCompletion_exactPrefix_hasHigherRelevance', '''
|
| var STR;
|
| main(p) {
|
| var str;
|
| str!1;
|
| STR!2;
|
| Str!3;
|
| -}''',
|
| - <String>[
|
| - "1+str" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 1)*/,
|
| - "1+STR" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 0)*/,
|
| - "2+STR" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 1)*/,
|
| - "2+str" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 0)*/,
|
| - "3+String" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 1)*/,
|
| - "3+STR" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 0)*/,
|
| - "3+str" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 0)*/
|
| - ]);
|
| -
|
| - buildTests(
|
| - 'testCompletion_export_dart',
|
| - '''
|
| +}''', <String>[
|
| + "1+str" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 1)*/,
|
| + "1+STR" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 0)*/,
|
| + "2+STR" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 1)*/,
|
| + "2+str" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 0)*/,
|
| + "3+String" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 1)*/,
|
| + "3+STR" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 0)*/,
|
| + "3+str" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 0)*/
|
| + ]);
|
| +
|
| + buildTests('testCompletion_export_dart', '''
|
| import 'dart:math
|
| import 'dart:_chrome
|
| import 'dart:_collection.dev
|
| -export 'dart:!1''',
|
| - <String>[
|
| - "1+dart:core",
|
| - "1+dart:math",
|
| - "1-dart:_chrome",
|
| - "1-dart:_collection.dev"
|
| - ]);
|
| +export 'dart:!1''', <String>[
|
| + "1+dart:core",
|
| + "1+dart:math",
|
| + "1-dart:_chrome",
|
| + "1-dart:_collection.dev"
|
| + ]);
|
|
|
| buildTests(
|
| 'testCompletion_export_noStringLiteral_noSemicolon',
|
| @@ -1335,21 +1061,15 @@ class A {}''',
|
| <String>["1+'dart:!';", "1+'package:!';"],
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'testCompletion_forStmt_vars',
|
| - '''
|
| + buildTests('testCompletion_forStmt_vars', '''
|
| class int{}class Foo { mth() { for (in!1t i = 0; i!2 < 5; i!3++); }}''',
|
| <String>["1+int", "2+i", "3+i"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_function',
|
| - '''
|
| + buildTests('testCompletion_function', '''
|
| class Foo { int boo = 7; mth() { PNGS.sort((String a, Str!1) => a.compareTo(b)); }}''',
|
| <String>["1+String"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_function_partial',
|
| - '''
|
| + buildTests('testCompletion_function_partial', '''
|
| class Foo { int boo = 7; mth() { PNGS.sort((String a, Str!1)); }}''',
|
| <String>["1+String"]);
|
|
|
| @@ -1363,59 +1083,32 @@ main(FFF fff) {
|
| <String>["1+x1", "2-x2"],
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'testCompletion_ifStmt_field1',
|
| - '''
|
| -class Foo { int myField = 7; mth() { if (!1) {}}}''',
|
| - <String>["1+myField"]);
|
| + buildTests('testCompletion_ifStmt_field1', '''
|
| +class Foo { int myField = 7; mth() { if (!1) {}}}''', <String>["1+myField"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_ifStmt_field1a',
|
| - '''
|
| -class Foo { int myField = 7; mth() { if (!1) }}''',
|
| - <String>["1+myField"]);
|
| + buildTests('testCompletion_ifStmt_field1a', '''
|
| +class Foo { int myField = 7; mth() { if (!1) }}''', <String>["1+myField"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_ifStmt_field2',
|
| - '''
|
| -class Foo { int myField = 7; mth() { if (m!1) {}}}''',
|
| - <String>["1+myField"]);
|
| + buildTests('testCompletion_ifStmt_field2', '''
|
| +class Foo { int myField = 7; mth() { if (m!1) {}}}''', <String>["1+myField"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_ifStmt_field2a',
|
| - '''
|
| -class Foo { int myField = 7; mth() { if (m!1) }}''',
|
| - <String>["1+myField"]);
|
| + buildTests('testCompletion_ifStmt_field2a', '''
|
| +class Foo { int myField = 7; mth() { if (m!1) }}''', <String>["1+myField"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_ifStmt_field2b',
|
| - '''
|
| -class Foo { myField = 7; mth() { if (m!1) {}}}''',
|
| - <String>["1+myField"]);
|
| + buildTests('testCompletion_ifStmt_field2b', '''
|
| +class Foo { myField = 7; mth() { if (m!1) {}}}''', <String>["1+myField"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_ifStmt_localVar',
|
| - '''
|
| -class Foo { mth() { int value = 7; if (v!1) {}}}''',
|
| - <String>["1+value"]);
|
| + buildTests('testCompletion_ifStmt_localVar', '''
|
| +class Foo { mth() { int value = 7; if (v!1) {}}}''', <String>["1+value"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_ifStmt_localVara',
|
| - '''
|
| -class Foo { mth() { value = 7; if (v!1) {}}}''',
|
| - <String>["1-value"]);
|
| + buildTests('testCompletion_ifStmt_localVara', '''
|
| +class Foo { mth() { value = 7; if (v!1) {}}}''', <String>["1-value"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_ifStmt_topLevelVar',
|
| - '''
|
| -int topValue = 7; class Foo { mth() { if (t!1) {}}}''',
|
| - <String>["1+topValue"]);
|
| + buildTests('testCompletion_ifStmt_topLevelVar', '''
|
| +int topValue = 7; class Foo { mth() { if (t!1) {}}}''', <String>["1+topValue"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_ifStmt_topLevelVara',
|
| - '''
|
| -topValue = 7; class Foo { mth() { if (t!1) {}}}''',
|
| - <String>["1+topValue"]);
|
| + buildTests('testCompletion_ifStmt_topLevelVara', '''
|
| +topValue = 7; class Foo { mth() { if (t!1) {}}}''', <String>["1+topValue"]);
|
|
|
| buildTests(
|
| 'testCompletion_ifStmt_unionType_nonStrict',
|
| @@ -1453,33 +1146,24 @@ void main() {
|
| <String>["1+a", "1-x", "1-y"],
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'testCompletion_import',
|
| - '''
|
| -import '!1';''',
|
| - <String>["1+dart:!", "1+package:!"]);
|
| + buildTests('testCompletion_import', '''
|
| +import '!1';''', <String>["1+dart:!", "1+package:!"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_import_dart',
|
| - '''
|
| + buildTests('testCompletion_import_dart', '''
|
| import 'dart:math
|
| import 'dart:_chrome
|
| import 'dart:_collection.dev
|
| -import 'dart:!1''',
|
| - <String>[
|
| - "1+dart:core",
|
| - "1+dart:math",
|
| - "1-dart:_chrome",
|
| - "1-dart:_collection.dev"
|
| - ]);
|
| -
|
| - buildTests(
|
| - 'testCompletion_import_hasStringLiteral_noSemicolon',
|
| - '''
|
| +import 'dart:!1''', <String>[
|
| + "1+dart:core",
|
| + "1+dart:math",
|
| + "1-dart:_chrome",
|
| + "1-dart:_collection.dev"
|
| + ]);
|
| +
|
| + buildTests('testCompletion_import_hasStringLiteral_noSemicolon', '''
|
| import '!1'
|
|
|
| -class A {}''',
|
| - <String>["1+dart:!", "1+package:!"]);
|
| +class A {}''', <String>["1+dart:!", "1+package:!"]);
|
|
|
| buildTests(
|
| 'testCompletion_import_noSpace',
|
| @@ -1504,25 +1188,19 @@ class A {}''',
|
| <String>["1+'dart:!';", "1+'package:!';"],
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'testCompletion_incompleteClassMember',
|
| - '''
|
| + buildTests('testCompletion_incompleteClassMember', '''
|
| class A {
|
| Str!1
|
| final f = null;
|
| -}''',
|
| - <String>["1+String", "1-bool"]);
|
| +}''', <String>["1+String", "1-bool"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_incompleteClosure_parameterType',
|
| - '''
|
| + buildTests('testCompletion_incompleteClosure_parameterType', '''
|
| f1(cb(String s)) {}
|
| f2(String s) {}
|
| main() {
|
| f1((Str!1));
|
| f2((Str!2));
|
| -}''',
|
| - <String>["1+String", "1-bool", "2+String", "2-bool"]);
|
| +}''', <String>["1+String", "1-bool", "2+String", "2-bool"]);
|
|
|
| buildTests(
|
| 'testCompletion_inPeriodPeriod',
|
| @@ -1536,16 +1214,13 @@ main(String str) {
|
| failingTests: '123');
|
|
|
| // no checks, but no exceptions
|
| - buildTests(
|
| - 'testCompletion_instanceCreation_unresolved',
|
| - '''
|
| + buildTests('testCompletion_instanceCreation_unresolved', '''
|
| class A {
|
| }
|
| main() {
|
| new NoSuchClass(!1);
|
| new A.noSuchConstructor(!2);
|
| -}''',
|
| - <String>["1+int", "2+int"]);
|
| +}''', <String>["1+int", "2+int"]);
|
|
|
| buildTests(
|
| 'testCompletion_import_lib',
|
| @@ -1555,9 +1230,7 @@ import '!1''',
|
| extraFiles: <String, String>{"/my_lib.dart": ""},
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'testCompletion_is',
|
| - '''
|
| + buildTests('testCompletion_is', '''
|
| class MyClass {}
|
| main(p) {
|
| var isVariable;
|
| @@ -1565,29 +1238,23 @@ main(p) {
|
| var v1 = p is MyCla!2;
|
| var v2 = p is !3;
|
| var v2 = p is!4;
|
| -}''',
|
| - <String>[
|
| - "1+MyClass",
|
| - "2+MyClass",
|
| - "3+MyClass",
|
| - "3-v1",
|
| - "4+is",
|
| - "4-isVariable"
|
| - ]);
|
| -
|
| - buildTests(
|
| - 'testCompletion_is_asIdentifierStart',
|
| - '''
|
| +}''', <String>[
|
| + "1+MyClass",
|
| + "2+MyClass",
|
| + "3+MyClass",
|
| + "3-v1",
|
| + "4+is",
|
| + "4-isVariable"
|
| + ]);
|
| +
|
| + buildTests('testCompletion_is_asIdentifierStart', '''
|
| main(p) {
|
| var isVisible;
|
| var v1 = is!1;
|
| var v2 = is!2
|
| -}''',
|
| - <String>["1+isVisible", "2+isVisible"]);
|
| +}''', <String>["1+isVisible", "2+isVisible"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_is_asPrefixedIdentifierStart',
|
| - '''
|
| + buildTests('testCompletion_is_asPrefixedIdentifierStart', '''
|
| class A {
|
| var isVisible;
|
| }
|
| @@ -1595,56 +1262,37 @@ class A {
|
| main(A p) {
|
| var v1 = p.is!1;
|
| var v2 = p.is!2
|
| -}''',
|
| - <String>["1+isVisible", "2+isVisible"]);
|
| +}''', <String>["1+isVisible", "2+isVisible"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_is_incompleteStatement1',
|
| - '''
|
| + buildTests('testCompletion_is_incompleteStatement1', '''
|
| class MyClass {}
|
| main(p) {
|
| var justSomeVar;
|
| var v = p is !1
|
| -}''',
|
| - <String>["1+MyClass", "1-justSomeVar"]);
|
| +}''', <String>["1+MyClass", "1-justSomeVar"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_is_incompleteStatement2',
|
| - '''
|
| + buildTests('testCompletion_is_incompleteStatement2', '''
|
| class MyClass {}
|
| main(p) {
|
| var isVariable;
|
| var v = p is!1
|
| -}''',
|
| - <String>["1+is", "1-isVariable"]);
|
| +}''', <String>["1+is", "1-isVariable"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_keyword_in',
|
| - '''
|
| -class Foo { int input = 7; mth() { if (in!1) {}}}''',
|
| - <String>["1+input"]);
|
| + buildTests('testCompletion_keyword_in', '''
|
| +class Foo { int input = 7; mth() { if (in!1) {}}}''', <String>["1+input"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_keyword_syntheticIdentifier',
|
| - '''
|
| + buildTests('testCompletion_keyword_syntheticIdentifier', '''
|
| main() {
|
| var caseVar;
|
| var otherVar;
|
| var v = case!1
|
| -}''',
|
| - <String>["1+caseVar", "1-otherVar"]);
|
| +}''', <String>["1+caseVar", "1-otherVar"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_libraryIdentifier_atEOF',
|
| - '''
|
| -library int.!1''',
|
| - <String>["1-parse", "1-bool"]);
|
| + buildTests('testCompletion_libraryIdentifier_atEOF', '''
|
| +library int.!1''', <String>["1-parse", "1-bool"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_libraryIdentifier_notEOF',
|
| - '''
|
| -library int.!1''',
|
| - <String>["1-parse", "1-bool"]);
|
| + buildTests('testCompletion_libraryIdentifier_notEOF', '''
|
| +library int.!1''', <String>["1-parse", "1-bool"]);
|
|
|
| buildTests(
|
| 'testCompletion_methodRef_asArg_incompatibleFunctionType',
|
| @@ -1681,26 +1329,20 @@ main(p) {
|
| ],
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'testCompletion_methodRef_asArg_ofFunctionType',
|
| - '''
|
| + buildTests('testCompletion_methodRef_asArg_ofFunctionType', '''
|
| foo( f(int p) ) {}
|
| class Functions {
|
| static int myFunc(int p) {}
|
| }
|
| main(p) {
|
| foo(Functions.!1);
|
| -}''',
|
| - <String>[
|
| - "1+myFunc" /*":" + ProposalKind.METHOD*/,
|
| - "1+myFunc" /*":" + ProposalKind.METHOD_NAME*/
|
| - ]);
|
| +}''', <String>[
|
| + "1+myFunc" /*":" + ProposalKind.METHOD*/,
|
| + "1+myFunc" /*":" + ProposalKind.METHOD_NAME*/
|
| + ]);
|
|
|
| - buildTests(
|
| - 'testCompletion_namedArgument_alreadyUsed',
|
| - '''
|
| -func({foo}) {} main() { func(foo: 0, fo!1); }''',
|
| - <String>["1-foo"]);
|
| + buildTests('testCompletion_namedArgument_alreadyUsed', '''
|
| +func({foo}) {} main() { func(foo: 0, fo!1); }''', <String>["1-foo"]);
|
|
|
| buildTests(
|
| 'testCompletion_namedArgument_constructor',
|
| @@ -1726,39 +1368,25 @@ func({foo, bar}) {} main() { func(fo!1); }''',
|
| <String>["1+foo", "1-bar"],
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'testCompletion_namedArgument_notNamed',
|
| - '''
|
| -func([foo]) {} main() { func(fo!1); }''',
|
| - <String>["1-foo"]);
|
| + buildTests('testCompletion_namedArgument_notNamed', '''
|
| +func([foo]) {} main() { func(fo!1); }''', <String>["1-foo"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_namedArgument_unresolvedFunction',
|
| - '''
|
| -main() { func(fo!1); }''',
|
| - <String>["1-foo"]);
|
| + buildTests('testCompletion_namedArgument_unresolvedFunction', '''
|
| +main() { func(fo!1); }''', <String>["1-foo"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_newMemberType1',
|
| - '''
|
| + buildTests('testCompletion_newMemberType1', '''
|
| class Collection{}class List extends Collection{}class Foo { !1 }''',
|
| <String>["1+Collection", "1+List"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_newMemberType2',
|
| - '''
|
| + buildTests('testCompletion_newMemberType2', '''
|
| class Collection{}class List extends Collection{}class Foo {!1}''',
|
| <String>["1+Collection", "1+List"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_newMemberType3',
|
| - '''
|
| + buildTests('testCompletion_newMemberType3', '''
|
| class Collection{}class List extends Collection{}class Foo {L!1}''',
|
| <String>["1-Collection", "1+List"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_newMemberType4',
|
| - '''
|
| + buildTests('testCompletion_newMemberType4', '''
|
| class Collection{}class List extends Collection{}class Foo {C!1}''',
|
| <String>["1+Collection", "1-List"]);
|
|
|
| @@ -1818,45 +1446,34 @@ main() {
|
| ],
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'testCompletion_privateElement_sameLibrary_constructor',
|
| - '''
|
| + buildTests('testCompletion_privateElement_sameLibrary_constructor', '''
|
| class A {
|
| A._c();
|
| A.c();
|
| }
|
| main() {
|
| new A.!1
|
| -}''',
|
| - <String>["1+_c", "1+c"]);
|
| +}''', <String>["1+_c", "1+c"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_privateElement_sameLibrary_member',
|
| - '''
|
| + buildTests('testCompletion_privateElement_sameLibrary_member', '''
|
| class A {
|
| _m() {}
|
| m() {}
|
| }
|
| main(A a) {
|
| a.!1
|
| -}''',
|
| - <String>["1+_m", "1+m"]);
|
| +}''', <String>["1+_m", "1+m"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_propertyAccess_whenClassTarget',
|
| - '''
|
| + buildTests('testCompletion_propertyAccess_whenClassTarget', '''
|
| class A {
|
| static int FIELD;
|
| int field;
|
| }
|
| main() {
|
| A.!1
|
| -}''',
|
| - <String>["1+FIELD", "1-field"]);
|
| +}''', <String>["1+FIELD", "1-field"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_propertyAccess_whenClassTarget_excludeSuper',
|
| - '''
|
| + buildTests('testCompletion_propertyAccess_whenClassTarget_excludeSuper', '''
|
| class A {
|
| static int FIELD_A;
|
| static int methodA() {}
|
| @@ -1867,12 +1484,9 @@ class B extends A {
|
| }
|
| main() {
|
| B.!1;
|
| -}''',
|
| - <String>["1+FIELD_B", "1-FIELD_A", "1+methodB", "1-methodA"]);
|
| +}''', <String>["1+FIELD_B", "1-FIELD_A", "1+methodB", "1-methodA"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_propertyAccess_whenInstanceTarget',
|
| - '''
|
| + buildTests('testCompletion_propertyAccess_whenInstanceTarget', '''
|
| class A {
|
| static int FIELD;
|
| int fieldA;
|
| @@ -1886,30 +1500,19 @@ class C extends A {
|
| main(B b, C c) {
|
| b.a.!1;
|
| c.!2;
|
| -}''',
|
| - <String>["1-FIELD", "1+fieldA", "2+fieldC", "2+fieldA"]);
|
| +}''', <String>["1-FIELD", "1+fieldA", "2+fieldC", "2+fieldA"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_return_withIdentifierPrefix',
|
| - '''
|
| -f() { var vvv = 42; return v!1 }''',
|
| - <String>["1+vvv"]);
|
| + buildTests('testCompletion_return_withIdentifierPrefix', '''
|
| +f() { var vvv = 42; return v!1 }''', <String>["1+vvv"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_return_withoutExpression',
|
| - '''
|
| -f() { var vvv = 42; return !1 }''',
|
| - <String>["1+vvv"]);
|
| + buildTests('testCompletion_return_withoutExpression', '''
|
| +f() { var vvv = 42; return !1 }''', <String>["1+vvv"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_staticField1',
|
| - '''
|
| + buildTests('testCompletion_staticField1', '''
|
| class num{}class Sunflower {static final n!2um MAX_D = 300;nu!3m xc, yc;Sun!4flower() {x!Xc = y!Yc = MA!1 }}''',
|
| <String>["1+MAX_D", "X+xc", "Y+yc", "2+num", "3+num", "4+Sunflower"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_super_superType',
|
| - '''
|
| + buildTests('testCompletion_super_superType', '''
|
| class A {
|
| var fa;
|
| ma() {}
|
| @@ -1920,8 +1523,7 @@ class B extends A {
|
| main() {
|
| super.!1
|
| }
|
| -}''',
|
| - <String>["1+fa", "1-fb", "1+ma", "1-mb"]);
|
| +}''', <String>["1+fa", "1-fb", "1+ma", "1-mb"]);
|
|
|
| buildTests(
|
| 'testCompletion_superConstructorInvocation_noNamePrefix',
|
| @@ -1997,21 +1599,16 @@ var v = this.!1;''',
|
| <String>["1-toString"],
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'testCompletion_this_OK_inConstructorBody',
|
| - '''
|
| + buildTests('testCompletion_this_OK_inConstructorBody', '''
|
| class A {
|
| var f;
|
| m() {}
|
| A() {
|
| this.!1;
|
| }
|
| -}''',
|
| - <String>["1+f", "1+m"]);
|
| +}''', <String>["1+f", "1+m"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_this_OK_localAndSuper',
|
| - '''
|
| + buildTests('testCompletion_this_OK_localAndSuper', '''
|
| class A {
|
| var fa;
|
| ma() {}
|
| @@ -2022,34 +1619,25 @@ class B extends A {
|
| main() {
|
| this.!1
|
| }
|
| -}''',
|
| - <String>["1+fa", "1+fb", "1+ma", "1+mb"]);
|
| +}''', <String>["1+fa", "1+fb", "1+ma", "1+mb"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_topLevelField_init2',
|
| - '''
|
| + buildTests('testCompletion_topLevelField_init2', '''
|
| class DateTime{static var JUN;}final num M = Dat!1eTime.JUN;''',
|
| <String>["1+DateTime", "1-void"]);
|
|
|
| - buildTests(
|
| - 'testCompletion_while',
|
| - '''
|
| -class Foo { int boo = 7; mth() { while (b!1) {} }}''',
|
| - <String>["1+boo"]);
|
| + buildTests('testCompletion_while', '''
|
| +class Foo { int boo = 7; mth() { while (b!1) {} }}''', <String>["1+boo"]);
|
| }
|
|
|
| void buildLibraryTests() {
|
| Map<String, String> sources = new HashMap<String, String>();
|
|
|
| - buildTests(
|
| - 'test_export_ignoreIfThisLibraryExports',
|
| - '''
|
| + buildTests('test_export_ignoreIfThisLibraryExports', '''
|
| export 'dart:math';
|
| libFunction() {};
|
| main() {
|
| !1
|
| -}''',
|
| - <String>["1-cos", "1+libFunction"]);
|
| +}''', <String>["1-cos", "1+libFunction"]);
|
|
|
| sources.clear();
|
| sources["/lib.dart"] = '''
|
| @@ -2172,23 +1760,20 @@ throw new Seria!1lizationException();}''',
|
|
|
| // TODO Include corelib analysis
|
| // Resolving dart:html takes between 2.5s and 30s; json, about 0.12s
|
| - buildTests(
|
| - 'testLibrary004',
|
| - '''
|
| + buildTests('testLibrary004', '''
|
| library foo;
|
| import 'dart:convert' as json;
|
| class JsonDecoderX{}
|
| f1() {var x=new json.!1}
|
| f2() {var x=new json.JsonDe!2}
|
| - f3() {var x=new json.JsonDecoder!3}''',
|
| - <String>[
|
| - "1+JsonDecoder",
|
| - "1-JsonDecoderX",
|
| - "2+JsonDecoder",
|
| - "2-JsonDecoderX",
|
| - "3+JsonDecoder",
|
| - "3-JsonDecoderX"
|
| - ]);
|
| + f3() {var x=new json.JsonDecoder!3}''', <String>[
|
| + "1+JsonDecoder",
|
| + "1-JsonDecoderX",
|
| + "2+JsonDecoder",
|
| + "2-JsonDecoderX",
|
| + "3+JsonDecoder",
|
| + "3-JsonDecoderX"
|
| + ]);
|
|
|
| // TODO Enable after type propagation is implemented. Not yet.
|
| // TODO Include corelib analysis
|
| @@ -2323,38 +1908,29 @@ void d() {
|
| }
|
|
|
| void buildNumberedTests() {
|
| - buildTests(
|
| - 'test001',
|
| - '''
|
| + buildTests('test001', '''
|
| void r1(var v) {
|
| v.!1toString!2().!3hash!4Code
|
| -}''',
|
| - <String>[
|
| - "1+toString",
|
| - "1-==",
|
| - "2+toString",
|
| - "3+hashCode",
|
| - "3+toString",
|
| - "4+hashCode",
|
| - "4-toString"
|
| - ]);
|
| -
|
| - buildTests(
|
| - 'test002',
|
| - '''
|
| +}''', <String>[
|
| + "1+toString",
|
| + "1-==",
|
| + "2+toString",
|
| + "3+hashCode",
|
| + "3+toString",
|
| + "4+hashCode",
|
| + "4-toString"
|
| + ]);
|
| +
|
| + buildTests('test002', '''
|
| void r2(var vim) {
|
| v!1.toString()
|
| -}''',
|
| - <String>["1+vim"]);
|
| +}''', <String>["1+vim"]);
|
|
|
| - buildTests(
|
| - 'test003',
|
| - '''
|
| + buildTests('test003', '''
|
| class A {
|
| int a() => 3;
|
| int b() => this.!1a();
|
| -}''',
|
| - <String>["1+a"]);
|
| +}''', <String>["1+a"]);
|
|
|
| buildTests(
|
| 'test004',
|
| @@ -2402,21 +1978,15 @@ void rr(var vim) {
|
| ],
|
| failingTests: '1');
|
|
|
| - buildTests(
|
| - 'test006',
|
| - '''
|
| + buildTests('test006', '''
|
| void r2(var vim, {va: 2, b: 3}) {
|
| v!1.toString()
|
| -}''',
|
| - <String>["1+va", "1-b"]);
|
| +}''', <String>["1+va", "1-b"]);
|
|
|
| - buildTests(
|
| - 'test007',
|
| - '''
|
| + buildTests('test007', '''
|
| void r2(var vim, [va: 2, b: 3]) {
|
| v!1.toString()
|
| -}''',
|
| - <String>["1+va", "1-b"]);
|
| +}''', <String>["1+va", "1-b"]);
|
|
|
| // keywords
|
| buildTests(
|
| @@ -2633,15 +2203,12 @@ class Q {
|
| buildTests('test018', '''!1part !2of foo;''', <String>["1+part", "2+of"],
|
| failingTests: '12');
|
|
|
| - buildTests(
|
| - 'test019',
|
| - '''
|
| + buildTests('test019', '''
|
| var truefalse = 0;
|
| var falsetrue = 1;
|
| main() {
|
| var foo = true!1
|
| -}''',
|
| - <String>["1+true", "1+truefalse", "1-falsetrue"]);
|
| +}''', <String>["1+true", "1+truefalse", "1-falsetrue"]);
|
|
|
| buildTests('test020', '''var x = null.!1''', <String>["1+toString"]);
|
|
|
| @@ -2649,9 +2216,7 @@ main() {
|
|
|
| buildTests('test022', '''var x = .!1;''', <String>["1-toString"]);
|
|
|
| - buildTests(
|
| - 'test023',
|
| - '''
|
| + buildTests('test023', '''
|
| class Map{getKeys(){}}
|
| class X {
|
| static x1(Map m) {
|
| @@ -2660,24 +2225,18 @@ class X {
|
| x2(Map m) {
|
| m.!2getKeys;
|
| }
|
| -}''',
|
| - <String>["1+getKeys", "2+getKeys"]);
|
| +}''', <String>["1+getKeys", "2+getKeys"]);
|
|
|
| // Note lack of semicolon following completion location
|
| - buildTests(
|
| - 'test024',
|
| - '''
|
| + buildTests('test024', '''
|
| class List{factory List.from(Iterable other) {}}
|
| class F {
|
| f() {
|
| new List.!1
|
| }
|
| -}''',
|
| - <String>["1+from"]);
|
| +}''', <String>["1+from"]);
|
|
|
| - buildTests(
|
| - 'test025',
|
| - '''
|
| + buildTests('test025', '''
|
| class R {
|
| static R _m;
|
| static R m;
|
| @@ -2709,24 +2268,23 @@ class T {
|
| var g = R.!Em;
|
| var h = R.!Fg();
|
| }
|
| -}''',
|
| - <String>[
|
| - "1+m",
|
| - "2+_m",
|
| - "3+g",
|
| - "4+m",
|
| - "5+_m",
|
| - "6+g",
|
| - "7-g",
|
| - "8-m",
|
| - "9-_m",
|
| - "A+_m",
|
| - "B+m",
|
| - "C+g",
|
| - "D+_m",
|
| - "E+m",
|
| - "F+g"
|
| - ]);
|
| +}''', <String>[
|
| + "1+m",
|
| + "2+_m",
|
| + "3+g",
|
| + "4+m",
|
| + "5+_m",
|
| + "6+g",
|
| + "7-g",
|
| + "8-m",
|
| + "9-_m",
|
| + "A+_m",
|
| + "B+m",
|
| + "C+g",
|
| + "D+_m",
|
| + "E+m",
|
| + "F+g"
|
| + ]);
|
|
|
| buildTests('test026', '''var aBcD; var x=ab!1''', <String>["1+aBcD"]);
|
|
|
| @@ -2744,9 +2302,7 @@ class T {
|
| '''class Caster {} m() {try {} on Cas!1ter catch (CastBlock) {!2}}''',
|
| <String>["1+Caster", "1-CastBlock", "2+Caster", "2+CastBlock"]);
|
|
|
| - buildTests(
|
| - 'test032',
|
| - '''
|
| + buildTests('test032', '''
|
| const ONE = 1;
|
| const ICHI = 10;
|
| const UKSI = 100;
|
| @@ -2760,17 +2316,16 @@ m() {
|
| case ONE!1: return;
|
| default: return;
|
| }
|
| -}''',
|
| - <String>[
|
| - "1+ONE",
|
| - "1-UKSI",
|
| - "2+EIN",
|
| - "2-ICHI",
|
| - "3+ICHI",
|
| - "3+UKSI",
|
| - "3+EIN",
|
| - "3+ONE"
|
| - ]);
|
| +}''', <String>[
|
| + "1+ONE",
|
| + "1-UKSI",
|
| + "2+EIN",
|
| + "2-ICHI",
|
| + "3+ICHI",
|
| + "3+UKSI",
|
| + "3+EIN",
|
| + "3+ONE"
|
| + ]);
|
|
|
| buildTests(
|
| 'test033',
|
|
|