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

Unified Diff: pkg/analysis_server/test/completion_test.dart

Issue 1266923004: More fixes for failures on the Windows bot (Closed) Base URL: https://github.com/dart-lang/sdk.git@master
Patch Set: Created 5 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: pkg/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 bd78edac01770635569b248da7f45815e808e8fa..85a6fd8f704c2d7f52ef9c9f178642cf62ccc041 100644
--- a/pkg/analysis_server/test/completion_test.dart
+++ b/pkg/analysis_server/test/completion_test.dart
@@ -10,6 +10,13 @@ import 'dart:collection';
import 'package:unittest/unittest.dart';
import 'completion_test_support.dart';
+import 'utils.dart';
+
+main() {
+ initializeTestEnvironment();
+ CompletionTestBuilder builder = new CompletionTestBuilder();
+ builder.buildAll();
+}
/**
* Assigning the name of a single test to this string causes just that test to
@@ -17,11 +24,6 @@ import 'completion_test_support.dart';
*/
const String SOLO_TEST = null;
-main() {
- CompletionTestBuilder builder = new CompletionTestBuilder();
- builder.buildAll();
-}
-
/**
* Type of functions used to create tests.
*/
@@ -53,193 +55,316 @@ 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('testCommentSnippets009', '''
-class Maps{}class x extends!5 !2M!3 !4implements!6 !1\n{}''', <String>[
- "1+Map",
- "2+Maps",
- "3+Maps",
- "4-Maps",
- "4+implements",
- "5-Maps",
- "6-Map",
- "6+implements"
- ], failingTests: '46');
+ buildTests(
+ 'testCommentSnippets009',
+ '''
+class Maps{}class x extends!5 !2M!3 !4implements!6 !1\n{}''',
+ <String>[
+ "1+Map",
+ "2+Maps",
+ "3+Maps",
+ "4-Maps",
+ "4+implements",
+ "5-Maps",
+ "6-Map",
+ "6+implements"
+ ],
+ 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"]);
- buildTests('testCommentSnippets030', '''
+ buildTests(
+ 'testCommentSnippets030',
+ '''
class Bar<T extends Foo> {const Bar(!1T!2 k);T!3 m(T!4 a, T!5 b){}final T!6 f = null;}''',
<String>["1+T", "2+T", "3+T", "4+T", "5+T", "6+T"],
failingTests: '123456');
- buildTests('testCommentSnippets031', '''
+ buildTests(
+ 'testCommentSnippets031',
+ '''
class Bar<T extends Foo> {m(x){if (x is !1) return;if (x is!!!2)}}''',
- <String>["1+Bar", "1+T", "2+T", "2+Bar"], failingTests: '12');
+ <String>["1+Bar", "1+T", "2+T", "2+Bar"],
+ failingTests: '12');
- buildTests('testCommentSnippets032', '''
+ buildTests(
+ 'testCommentSnippets032',
+ '''
class Fit{}class Bar<T extends Fooa> {const !2F!1ara();}''',
- <String>["1+Fit", "1+Fara", "1-Bar", "2+Fit"], failingTests: '1');
+ <String>["1+Fit", "1+Fara", "1-Bar", "2+Fit"],
+ 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>[
+f1() {var x=new !2j!1s!3}''',
+ <String>[
"1+json",
"1+jxx",
"2+json",
@@ -249,7 +374,9 @@ f1() {var x=new !2j!1s!3}''', <String>[
"3-jxx"
]);
- buildTests('testCommentSnippets050', '''
+ buildTests(
+ 'testCommentSnippets050',
+ '''
class xdr {
xdr();
const xdr.a(a,b,c);
@@ -260,7 +387,8 @@ class xa{}
k() {
new x!1dr().f();
const x!2dr.!3a(1, 2, 3);
-}''', <String>[
+}''',
+ <String>[
"1+xdr",
"1+xa",
"1+xdr.a",
@@ -274,7 +402,9 @@ k() {
]);
// Type propagation.
- buildTests('testCommentSnippets051', '''
+ buildTests(
+ 'testCommentSnippets051',
+ '''
class String{int length(){} String toUpperCase(){} bool isEmpty(){}}class Map{getKeys(){}}
void r() {
var v;
@@ -282,10 +412,13 @@ 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'];
@@ -293,10 +426,13 @@ 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;
@@ -304,9 +440,12 @@ 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;
@@ -314,48 +453,67 @@ 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', '''
+ buildTests(
+ 'testCommentSnippets058',
+ '''
typedef vo!2id callback(int k);
void x(callback q){}
void r() {
callback v;
x(!1);
-}''', <String>["1+v", "2+void"], failingTests: '2');
+}''',
+ <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 {
@@ -363,22 +521,30 @@ 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() {
@@ -401,7 +567,8 @@ class Line {
Spline h() {
return null;
}
-}''', <String>[
+}''',
+ <String>[
"1+a",
"2+b",
"1-g",
@@ -415,7 +582,9 @@ class Line {
"9+h"
]);
- buildTests('testCommentSnippets065', '''
+ buildTests(
+ 'testCommentSnippets065',
+ '''
class Spline {
Line c;
Spline a() {
@@ -437,9 +606,12 @@ class Line {
Spline h() {
return null;
}
-}''', <String>["1+a"]);
+}''',
+ <String>["1+a"]);
- buildTests('testCommentSnippets066', '''
+ buildTests(
+ 'testCommentSnippets066',
+ '''
class Spline {
Line c;
Spline a() {
@@ -461,9 +633,12 @@ class Line {
Spline h() {
return null;
}
-}''', <String>["1+b"]);
+}''',
+ <String>["1+b"]);
- buildTests('testCommentSnippets067', '''
+ buildTests(
+ 'testCommentSnippets067',
+ '''
class Spline {
Line c;
Spline a() {
@@ -485,9 +660,12 @@ class Line {
Spline h() {
return null;
}
-}''', <String>["1+b"]);
+}''',
+ <String>["1+b"]);
- buildTests('testCommentSnippets068', '''
+ buildTests(
+ 'testCommentSnippets068',
+ '''
class Spline {
Line c;
Spline a() {
@@ -509,9 +687,12 @@ class Line {
Spline h() {
return null;
}
-}''', <String>["1+c"]);
+}''',
+ <String>["1+c"]);
- buildTests('testCommentSnippets069', '''
+ buildTests(
+ 'testCommentSnippets069',
+ '''
class Spline {
Line c;
Spline a() {
@@ -533,9 +714,12 @@ class Line {
Spline h() {
return null;
}
-}''', <String>["1+c"]);
+}''',
+ <String>["1+c"]);
- buildTests('testCommentSnippets070', '''
+ buildTests(
+ 'testCommentSnippets070',
+ '''
class Spline {
Line c;
Spline a() {
@@ -557,9 +741,12 @@ 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;
@@ -567,9 +754,12 @@ 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;
@@ -578,28 +768,41 @@ 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);
@@ -613,7 +816,8 @@ class File {
factory File(String path) => null;
factory File.fromPath(Path path) => null;
}
-f() => new Fil!1''', <String>[
+f() => new Fil!1''',
+ <String>[
"1+File",
"1+File.fromPath",
"1+FileMode",
@@ -621,60 +825,91 @@ f() => new Fil!1''', <String>[
"1+FileMode._internal"
]);
- buildTests('testCommentSnippets078', '''
+ 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
- buildTests('testCommentSnippets081', '''
-class Foo {this.!1}''', <String>["1-Object"], failingTests: '1');
+ buildTests(
+ 'testCommentSnippets081',
+ '''
+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"], failingTests: '1');
+ buildTests(
+ 'testCommentSnippets083b',
+ '''
+main() { null.!1 }''',
+ <String>["1+toString"],
+ failingTests: '1');
- buildTests('testCommentSnippets084', '''
-class List{}class Map{}typedef X = !1Lis!2t with !3Ma!4p;''', <String>[
- "1+Map",
- "2+List",
- "2-Map",
- "3+List",
- "4+Map",
- "4-List"
- ], failingTests: '1234');
+ buildTests(
+ 'testCommentSnippets084',
+ '''
+class List{}class Map{}typedef X = !1Lis!2t with !3Ma!4p;''',
+ <String>["1+Map", "2+List", "2-Map", "3+List", "4+Map", "4-List"],
+ failingTests: '1234');
- buildTests('testCommentSnippets085', '''
+ buildTests(
+ 'testCommentSnippets085',
+ '''
class List{}class Map{}class Z extends List with !1Ma!2p {}''',
- <String>["1+List", "1+Map", "2+Map", "2-List"], failingTests: '12');
+ <String>["1+List", "1+Map", "2+Map", "2-List"],
+ failingTests: '12');
- buildTests('testCommentSnippets086', '''
-class Q{f(){xy() {!2};x!1y();}}''', <String>["1+xy", "2+f", "2-xy"],
+ buildTests(
+ 'testCommentSnippets086',
+ '''
+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"], failingTests: '1');
+ <String>["1+Map", "1-HashMap"],
+ failingTests: '1');
- buildTests('testCommentSnippets088', '''
+ buildTests(
+ 'testCommentSnippets088',
+ '''
class A {
int f;
B m(){}
@@ -686,9 +921,12 @@ 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', '''
+ buildTests(
+ 'testCommentSnippets089',
+ '''
class Q {
fqe() {
xya() {
@@ -706,127 +944,170 @@ class Q {
fqi() {
!5
}
-}''', <String>[
- "1+fqe",
- "1+fqi",
- "1+Q",
- "1-xya",
- "1-xyb",
- "1-xza",
- "2+fqe",
- "2+fqi",
- "2+Q",
- "2-xya",
- "2-xyb",
- "2-xza",
- "3+fqe",
- "3+fqi",
- "3+Q",
- "3-xya",
- "3+xyb",
- "3-xza",
- "4+fqe",
- "4+fqi",
- "4+Q",
- "4+xya",
- "4-xyb",
- "4+xza",
- "5+fqe",
- "5+fqi",
- "5+Q",
- "5-xya",
- "5-xyb",
- "5-xza"
- ], failingTests: '123');
-
- buildTests('testCommentSnippets090', '''
-class X { f() { var a = 'x'; a.!1 }}''', <String>["1+length"]);
+}''',
+ <String>[
+ "1+fqe",
+ "1+fqi",
+ "1+Q",
+ "1-xya",
+ "1-xyb",
+ "1-xza",
+ "2+fqe",
+ "2+fqi",
+ "2+Q",
+ "2-xya",
+ "2-xyb",
+ "2-xza",
+ "3+fqe",
+ "3+fqi",
+ "3+Q",
+ "3-xya",
+ "3+xyb",
+ "3-xza",
+ "4+fqe",
+ "4+fqi",
+ "4+Q",
+ "4+xya",
+ "4-xyb",
+ "4+xza",
+ "5+fqe",
+ "5+fqi",
+ "5+Q",
+ "5-xya",
+ "5-xyb",
+ "5-xza"
+ ],
+ failingTests: '123');
+
+ 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', '''
+ buildTests(
+ 'testCompletion_annotation_argumentList',
+ '''
class AAA {",
const AAA({int aaa, int bbb});",
}",
",
@AAA(!1)
main() {
-}''', <String>["1+AAA" /*":" + ProposalKind.ARGUMENT_LIST*/, "1+aaa", "1+bbb"],
+}''',
+ <String>[
+ "1+AAA" /*":" + ProposalKind.ARGUMENT_LIST*/,
+ "1+aaa",
+ "1+bbb"
+ ],
failingTests: '1');
- buildTests('testCompletion_annotation_topLevelVar', '''
+ buildTests(
+ 'testCompletion_annotation_topLevelVar',
+ '''
const fooConst = null;
final fooNotConst = null;
const bar = null;
@foo!1
main() {
-}''', <String>["1+fooConst", "1-fooNotConst", "1-bar"], failingTests: '1');
+}''',
+ <String>["1+fooConst", "1-fooNotConst", "1-bar"],
+ failingTests: '1');
- buildTests('testCompletion_annotation_type', '''
+ buildTests(
+ 'testCompletion_annotation_type',
+ '''
class AAA {
const AAA({int a, int b});
const AAA.nnn(int c, int d);
}
@AAA!1
main() {
-}''', <String>[
- "1+AAA" /*":" + ProposalKind.CONSTRUCTOR*/,
- "1+AAA.nnn" /*":" + ProposalKind.CONSTRUCTOR*/
- ], failingTests: '1');
+}''',
+ <String>[
+ "1+AAA" /*":" + ProposalKind.CONSTRUCTOR*/,
+ "1+AAA.nnn" /*":" + ProposalKind.CONSTRUCTOR*/
+ ],
+ 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() {}
}
@@ -834,61 +1115,91 @@ 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"], failingTests: '1');
+ <String>["1+PI", "1+sin", "1+Random", "1-String"],
+ failingTests: '1');
- 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"]);
- buildTests('testCompletion_constructor_field', '''
-class X { X(this.field); int f!1ield;}''', <String>["1+field"],
+ buildTests(
+ 'testCompletion_constructor_field',
+ '''
+class X { X(this.field); int f!1ield;}''',
+ <String>["1+field"],
failingTests: '1');
- buildTests('testCompletion_constructorArguments_showOnlyCurrent', '''
+ buildTests(
+ 'testCompletion_constructorArguments_showOnlyCurrent',
+ '''
class A {
A.first(int p);
A.second(double p);
}
main() {
new A.first(!1);
-}''', <String>["1+A.first", "1-A.second"], failingTests: '1');
+}''',
+ <String>["1+A.first", "1-A.second"],
+ failingTests: '1');
- buildTests('testCompletion_constructorArguments_whenPrefixedType', '''
+ buildTests(
+ 'testCompletion_constructorArguments_whenPrefixedType',
+ '''
import 'dart:math' as m;
main() {
new m.Random(!1);
-}''', <String>["1+Random:ARGUMENT_LIST"], failingTests: '1');
+}''',
+ <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]
@@ -897,43 +1208,54 @@ 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', '''
+ buildTests(
+ 'testCompletion_dartDoc_reference_forFunction',
+ '''
/**
* [aa!1]
* [int!2]
* [function!3]
*/
functionA(aaa, bbb) {}
-functionB() {}''', <String>[
- "1+aaa",
- "1-bbb",
- "2+int",
- "2-double",
- "3+functionA",
- "3+functionB",
- "3-int"
- ], failingTests: '1');
+functionB() {}''',
+ <String>[
+ "1+aaa",
+ "1-bbb",
+ "2+int",
+ "2-double",
+ "3+functionA",
+ "3+functionB",
+ "3-int"
+ ],
+ failingTests: '1');
- buildTests('testCompletion_dartDoc_reference_forFunctionTypeAlias', '''
+ buildTests(
+ 'testCompletion_dartDoc_reference_forFunctionTypeAlias',
+ '''
/**
* [aa!1]
* [int!2]
* [Function!3]
*/
typedef FunctionA(aaa, bbb) {}
-typedef FunctionB() {}''', <String>[
- "1+aaa",
- "1-bbb",
- "2+int",
- "2-double",
- "3+FunctionA",
- "3+FunctionB",
- "3-int"
- ], failingTests: '1');
+typedef FunctionB() {}''',
+ <String>[
+ "1+aaa",
+ "1-bbb",
+ "2+int",
+ "2-double",
+ "3+FunctionA",
+ "3+FunctionB",
+ "3-int"
+ ],
+ failingTests: '1');
- buildTests('testCompletion_dartDoc_reference_forMethod', '''
+ buildTests(
+ 'testCompletion_dartDoc_reference_forMethod',
+ '''
class A {
/**
* [aa!1]
@@ -942,7 +1264,8 @@ class A {
*/
methodA(aaa, bbb) {}
methodB() {}
-}''', <String>[
+}''',
+ <String>[
"1+aaa",
"1-bbb",
"2+int",
@@ -952,7 +1275,9 @@ class A {
"3-int"
]);
- buildTests('testCompletion_dartDoc_reference_incomplete', '''
+ buildTests(
+ 'testCompletion_dartDoc_reference_incomplete',
+ '''
/**
* [doubl!1 some text
* other text
@@ -966,7 +1291,8 @@ class B {}
/**
* [!3] some text
*/
-class C {}''', <String>[
+class C {}''',
+ <String>[
"1+double",
"1-int",
"2+int",
@@ -975,25 +1301,34 @@ class C {}''', <String>[
"3+String"
]);
- buildTests('testCompletion_double_inFractionPart', '''
+ 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>[
+}''',
+ <String>[
"1+str" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 1)*/,
"1+STR" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 0)*/,
"2+STR" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 1)*/,
@@ -1003,68 +1338,115 @@ main(p) {
"3+str" /*",rel=" + (CompletionProposal.RELEVANCE_DEFAULT + 0)*/
]);
- buildTests('testCompletion_export_dart', '''
+ 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"
- ], failingTests: '1');
-
- buildTests('testCompletion_export_noStringLiteral_noSemicolon', '''
+export 'dart:!1''',
+ <String>[
+ "1+dart:core",
+ "1+dart:math",
+ "1-dart:_chrome",
+ "1-dart:_collection.dev"
+ ],
+ failingTests: '1');
+
+ buildTests(
+ 'testCompletion_export_noStringLiteral_noSemicolon',
+ '''
import !1
-class A {}''', <String>["1+'dart:!';", "1+'package:!';"], failingTests: '1');
+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"]);
- buildTests('testCompletion_functionTypeParameter_namedArgument', '''
+ buildTests(
+ 'testCompletion_functionTypeParameter_namedArgument',
+ '''
typedef FFF(a, b, {x1, x2, y});
main(FFF fff) {
fff(1, 2, !1)!2;
-}''', <String>["1+x1", "2-x2"], failingTests: '1');
+}''',
+ <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', '''
+ buildTests(
+ 'testCompletion_ifStmt_unionType_nonStrict',
+ '''
class A { a() => null; x() => null}
class B { a() => null; y() => null}
void main() {
@@ -1076,9 +1458,13 @@ void main() {
x = new B();
}
x.!1;
-}''', <String>["1+a", "1+x", "1+y"], failingTests: '1');
+}''',
+ <String>["1+a", "1+x", "1+y"],
+ failingTests: '1');
- buildTests('testCompletion_ifStmt_unionType_strict', '''
+ buildTests(
+ 'testCompletion_ifStmt_unionType_strict',
+ '''
class A { a() => null; x() => null}
class B { a() => null; y() => null}
void main() {
@@ -1090,74 +1476,116 @@ void main() {
x = new B();
}
x.!1;
-}''', <String>["1+a", "1-x", "1-y"], failingTests: '1');
+}''',
+ <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"
- ], failingTests: '1');
-
- buildTests('testCompletion_import_hasStringLiteral_noSemicolon', '''
+import 'dart:!1''',
+ <String>[
+ "1+dart:core",
+ "1+dart:math",
+ "1-dart:_chrome",
+ "1-dart:_collection.dev"
+ ],
+ failingTests: '1');
+
+ 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', '''
-import!1''', <String>["1+ 'dart:!';", "1+ 'package:!';"], failingTests: '1');
+ buildTests(
+ 'testCompletion_import_noSpace',
+ '''
+import!1''',
+ <String>["1+ 'dart:!';", "1+ 'package:!';"],
+ failingTests: '1');
- buildTests('testCompletion_import_noStringLiteral', '''
-import !1;''', <String>["1+'dart:!'", "1+'package:!'"], failingTests: '1');
+ buildTests(
+ 'testCompletion_import_noStringLiteral',
+ '''
+import !1;''',
+ <String>["1+'dart:!'", "1+'package:!'"],
+ failingTests: '1');
- buildTests('testCompletion_import_noStringLiteral_noSemicolon', '''
+ buildTests(
+ 'testCompletion_import_noStringLiteral_noSemicolon',
+ '''
import !1
-class A {}''', <String>["1+'dart:!';", "1+'package:!';"], failingTests: '1');
+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', '''
+ buildTests(
+ 'testCompletion_inPeriodPeriod',
+ '''
main(String str) {
1 < str.!1.length;
1 + str.!2.length;
1 + 2 * str.!3.length;
-}''', <String>["1+codeUnits", "2+codeUnits", "3+codeUnits"],
+}''',
+ <String>["1+codeUnits", "2+codeUnits", "3+codeUnits"],
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', '''
-import '!1''', <String>["1+my_lib.dart"],
- extraFiles: <String, String>{"/my_lib.dart": ""}, failingTests: '1');
+ buildTests(
+ 'testCompletion_import_lib',
+ '''
+import '!1''',
+ <String>["1+my_lib.dart"],
+ extraFiles: <String, String>{"/my_lib.dart": ""},
+ failingTests: '1');
- buildTests('testCompletion_is', '''
+ buildTests(
+ 'testCompletion_is',
+ '''
class MyClass {}
main(p) {
var isVariable;
@@ -1165,23 +1593,30 @@ 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"
- ], failingTests: '4');
-
- buildTests('testCompletion_is_asIdentifierStart', '''
+}''',
+ <String>[
+ "1+MyClass",
+ "2+MyClass",
+ "3+MyClass",
+ "3-v1",
+ "4+is",
+ "4-isVariable"
+ ],
+ failingTests: '4');
+
+ 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;
}
@@ -1189,39 +1624,61 @@ 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"], failingTests: '1');
+}''',
+ <String>["1+is", "1-isVariable"],
+ failingTests: '1');
- 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', '''
+ buildTests(
+ 'testCompletion_methodRef_asArg_incompatibleFunctionType',
+ '''
foo( f(int p) ) {}
class Functions {
static myFuncInt(int p) {}
@@ -1230,12 +1687,16 @@ class Functions {
bar(p) {}
main(p) {
foo( Functions.!1; );
-}''', <String>[
- "1+myFuncInt" /*":" + ProposalKind.METHOD_NAME*/,
- "1-myFuncDouble" /*":" + ProposalKind.METHOD_NAME*/
- ], failingTests: '1');
+}''',
+ <String>[
+ "1+myFuncInt" /*":" + ProposalKind.METHOD_NAME*/,
+ "1-myFuncDouble" /*":" + ProposalKind.METHOD_NAME*/
+ ],
+ failingTests: '1');
- buildTests('testCompletion_methodRef_asArg_notFunctionType', '''
+ buildTests(
+ 'testCompletion_methodRef_asArg_notFunctionType',
+ '''
foo( f(int p) ) {}
class Functions {
static myFunc(int p) {}
@@ -1243,91 +1704,133 @@ class Functions {
bar(p) {}
main(p) {
foo( (int p) => Functions.!1; );
-}''', <String>[
- "1+myFunc" /*":" + ProposalKind.METHOD*/,
- "1-myFunc" /*":" + ProposalKind.METHOD_NAME*/
- ], failingTests: '1');
+}''',
+ <String>[
+ "1+myFunc" /*":" + ProposalKind.METHOD*/,
+ "1-myFunc" /*":" + ProposalKind.METHOD_NAME*/
+ ],
+ 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>[
+}''',
+ <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', '''
+ buildTests(
+ 'testCompletion_namedArgument_constructor',
+ '''
class A {A({foo, bar}) {}} main() { new A(fo!1); }''',
- <String>["1+foo", "1-bar"], failingTests: '1');
+ <String>["1+foo", "1-bar"],
+ failingTests: '1');
- buildTests('testCompletion_namedArgument_empty', '''
-func({foo, bar}) {} main() { func(!1); }''', <String>[
- "1+foo" /*":" + ProposalKind.NAMED_ARGUMENT*/,
- "1-foo" /*":" + ProposalKind.OPTIONAL_ARGUMENT*/
- ], failingTests: '1');
+ buildTests(
+ 'testCompletion_namedArgument_empty',
+ '''
+func({foo, bar}) {} main() { func(!1); }''',
+ <String>[
+ "1+foo" /*":" + ProposalKind.NAMED_ARGUMENT*/,
+ "1-foo" /*":" + ProposalKind.OPTIONAL_ARGUMENT*/
+ ],
+ failingTests: '1');
- buildTests('testCompletion_namedArgument_function', '''
+ buildTests(
+ 'testCompletion_namedArgument_function',
+ '''
func({foo, bar}) {} main() { func(fo!1); }''',
- <String>["1+foo", "1-bar"], failingTests: '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"]);
- buildTests('testCompletion_positionalArgument_constructor', '''
+ buildTests(
+ 'testCompletion_positionalArgument_constructor',
+ '''
class A {
A([foo, bar]);
}
main() {
new A(!1);
new A(0, !2);
-}''', <String>[
- "1+foo" /*":" + ProposalKind.OPTIONAL_ARGUMENT*/,
- "1-bar",
- "2-foo",
- "2+bar" /*":"
+}''',
+ <String>[
+ "1+foo" /*":" + ProposalKind.OPTIONAL_ARGUMENT*/,
+ "1-bar",
+ "2-foo",
+ "2+bar" /*":"
+ ProposalKind.OPTIONAL_ARGUMENT*/
- ], failingTests: '12');
+ ],
+ failingTests: '12');
- buildTests('testCompletion_positionalArgument_function', '''
+ buildTests(
+ 'testCompletion_positionalArgument_function',
+ '''
func([foo, bar]) {}
main() {
func(!1);
func(0, !2);
-}''', <String>[
- "1+foo" /*":" + ProposalKind.OPTIONAL_ARGUMENT*/,
- "1-bar",
- "2-foo",
- "2+bar" /*":"
+}''',
+ <String>[
+ "1+foo" /*":" + ProposalKind.OPTIONAL_ARGUMENT*/,
+ "1-bar",
+ "2-foo",
+ "2+bar" /*":"
+ ProposalKind.OPTIONAL_ARGUMENT*/
- ], failingTests: '12');
+ ],
+ failingTests: '12');
- buildTests('testCompletion_preferStaticType', '''
+ buildTests(
+ 'testCompletion_preferStaticType',
+ '''
class A {
foo() {}
}
@@ -1337,40 +1840,53 @@ class B extends A {
main() {
A v = new B();
v.!1
-}''', <String>[
- "1+foo",
- "1-bar,potential=false,declaringType=B",
- "1+bar,potential=true,declaringType=B"
- ], failingTests: '1');
+}''',
+ <String>[
+ "1+foo",
+ "1-bar,potential=false,declaringType=B",
+ "1+bar,potential=true,declaringType=B"
+ ],
+ 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() {}
@@ -1381,10 +1897,13 @@ 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"],
failingTests: '1');
- buildTests('testCompletion_propertyAccess_whenInstanceTarget', '''
+ buildTests(
+ 'testCompletion_propertyAccess_whenInstanceTarget',
+ '''
class A {
static int FIELD;
int fieldA;
@@ -1398,19 +1917,30 @@ 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() {}
@@ -1421,9 +1951,12 @@ 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', '''
+ buildTests(
+ 'testCompletion_superConstructorInvocation_noNamePrefix',
+ '''
class A {
A.fooA();
A.fooB();
@@ -1431,9 +1964,13 @@ class A {
}
class B extends A {
B() : super.!1
-}''', <String>["1+fooA", "1+fooB", "1+bar"], failingTests: '1');
+}''',
+ <String>["1+fooA", "1+fooB", "1+bar"],
+ failingTests: '1');
- buildTests('testCompletion_superConstructorInvocation_withNamePrefix', '''
+ buildTests(
+ 'testCompletion_superConstructorInvocation_withNamePrefix',
+ '''
class A {
A.fooA();
A.fooB();
@@ -1441,44 +1978,71 @@ class A {
}
class B extends A {
B() : super.f!1
-}''', <String>["1+fooA", "1+fooB", "1-bar"], failingTests: '1');
+}''',
+ <String>["1+fooA", "1+fooB", "1-bar"],
+ failingTests: '1');
- buildTests('testCompletion_this_bad_inConstructorInitializer', '''
+ buildTests(
+ 'testCompletion_this_bad_inConstructorInitializer',
+ '''
class A {
var f;
A() : f = this.!1;
-}''', <String>["1-toString"], failingTests: '1');
+}''',
+ <String>["1-toString"],
+ failingTests: '1');
- buildTests('testCompletion_this_bad_inFieldDeclaration', '''
+ buildTests(
+ 'testCompletion_this_bad_inFieldDeclaration',
+ '''
class A {
var f = this.!1;
-}''', <String>["1-toString"], failingTests: '1');
+}''',
+ <String>["1-toString"],
+ failingTests: '1');
- buildTests('testCompletion_this_bad_inStaticMethod', '''
+ buildTests(
+ 'testCompletion_this_bad_inStaticMethod',
+ '''
class A {
static m() {
this.!1;
}
-}''', <String>["1-toString"], failingTests: '1');
+}''',
+ <String>["1-toString"],
+ failingTests: '1');
- buildTests('testCompletion_this_bad_inTopLevelFunction', '''
+ buildTests(
+ 'testCompletion_this_bad_inTopLevelFunction',
+ '''
main() {
this.!1;
-}''', <String>["1-toString"], failingTests: '1');
+}''',
+ <String>["1-toString"],
+ failingTests: '1');
- buildTests('testCompletion_this_bad_inTopLevelVariableDeclaration', '''
-var v = this.!1;''', <String>["1-toString"], failingTests: '1');
+ buildTests(
+ 'testCompletion_this_bad_inTopLevelVariableDeclaration',
+ '''
+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() {}
@@ -1489,49 +2053,70 @@ 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"] = '''
library lib;
export 'dart:math' hide sin;
libFunction() {};''';
- buildTests('test_export_showIfImportLibraryWithExport', '''
+ buildTests(
+ 'test_export_showIfImportLibraryWithExport',
+ '''
import 'lib.dart' as p;
main() {
p.!1
-}''', <String>["1+cos", "1-sin", "1+libFunction"],
- extraFiles: sources, failingTests: '1');
+}''',
+ <String>["1+cos", "1-sin", "1+libFunction"],
+ extraFiles: sources,
+ failingTests: '1');
- buildTests('test_importPrefix_hideCombinator', '''
+ buildTests(
+ 'test_importPrefix_hideCombinator',
+ '''
import 'dart:math' as math hide PI;
main() {
math.!1
-}''', <String>["1-PI", "1+LN10"], failingTests: '1');
+}''',
+ <String>["1-PI", "1+LN10"],
+ failingTests: '1');
- buildTests('test_importPrefix_showCombinator', '''
+ buildTests(
+ 'test_importPrefix_showCombinator',
+ '''
import 'dart:math' as math show PI;
main() {
math.!1
-}''', <String>["1+PI", "1-LN10"], failingTests: '1');
+}''',
+ <String>["1+PI", "1-LN10"],
+ failingTests: '1');
sources.clear();
sources["/lib.dart"] = '''
@@ -1541,11 +2126,16 @@ class _A
class A extends _A {
}''';
- buildTests('test_memberOfPrivateClass_otherLibrary', '''
+ buildTests(
+ 'test_memberOfPrivateClass_otherLibrary',
+ '''
import 'lib.dart';
main(A a) {
a.!1
-}''', <String>["1+foo"], extraFiles: sources, failingTests: '1');
+}''',
+ <String>["1+foo"],
+ extraFiles: sources,
+ failingTests: '1');
sources.clear();
sources["/lib.dart"] = '''
@@ -1554,11 +2144,15 @@ class A {
A.c();
A._c();
}''';
- buildTests('test_noPrivateElement_otherLibrary_constructor', '''
+ buildTests(
+ 'test_noPrivateElement_otherLibrary_constructor',
+ '''
import 'lib.dart';
main() {
new A.!1
-}''', <String>["1-_c", "1+c"], failingTests: '1');
+}''',
+ <String>["1-_c", "1+c"],
+ failingTests: '1');
sources.clear();
sources["/lib.dart"] = '''
@@ -1567,12 +2161,16 @@ class A {
var f;
var _f;
}''';
- buildTests('test_noPrivateElement_otherLibrary_member', '''
+ buildTests(
+ 'test_noPrivateElement_otherLibrary_member',
+ '''
import 'lib.dart';
main(A a) {
a.!1
- }''', <String>["1-_f", "1+f"],
- extraFiles: sources, failingTests: '1');
+ }''',
+ <String>["1-_f", "1+f"],
+ extraFiles: sources,
+ failingTests: '1');
sources.clear();
sources["/firth.dart"] = '''
@@ -1580,34 +2178,41 @@ library firth;
class SerializationException {
const SerializationException();
}''';
- buildTests('testLibrary001', '''
+ buildTests(
+ 'testLibrary001',
+ '''
import 'firth.dart';
main() {
-throw new Seria!1lizationException();}''', <String>["1+SerializationException"],
- extraFiles: sources, failingTests: '1');
+throw new Seria!1lizationException();}''',
+ <String>["1+SerializationException"],
+ extraFiles: sources,
+ failingTests: '1');
// Type propagation.
// TODO Include corelib analysis (this works in the editor)
- buildTests('testLibrary002',
+ buildTests(
+ 'testLibrary002',
'''t2() {var q=[0],z=q.!1length;q.!2clear();}''',
- <String>["1+length", "1+isEmpty", "2+clear"], failingTests: '1');
+ <String>["1+length", "1+isEmpty", "2+clear"],
+ failingTests: '1');
// TODO Include corelib analysis
- buildTests('testLibrary003', '''class X{var q; f() {q.!1a!2}}''', <String>[
- "1+end",
- "2+abs",
- "2-end"
- ], failingTests: '12');
+ buildTests('testLibrary003', '''class X{var q; f() {q.!1a!2}}''',
+ <String>["1+end", "2+abs", "2-end"],
+ failingTests: '12');
// 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>[
+ f3() {var x=new json.JsonDecoder!3}''',
+ <String>[
"1+JsonDecoder",
"1-JsonDecoderX",
"2+JsonDecoder",
@@ -1619,9 +2224,8 @@ throw new Seria!1lizationException();}''', <String>["1+SerializationException"],
// TODO Enable after type propagation is implemented. Not yet.
// TODO Include corelib analysis
buildTests('testLibrary005',
- '''var PHI;main(){PHI=5.3;PHI.abs().!1 Object x;}''', <String>[
- "1+abs"
- ], failingTests: '1');
+ '''var PHI;main(){PHI=5.3;PHI.abs().!1 Object x;}''', <String>["1+abs"],
+ failingTests: '1');
// Exercise import and export handling.
// Libraries are defined in partial order of increasing dependency.
@@ -1644,7 +2248,9 @@ i1() {}''';
library imp2;
export 'exp2a.dart';
i2() {}''';
- buildTests('testLibrary006', '''
+ buildTests(
+ 'testLibrary006',
+ '''
import 'imp1.dart';
import 'imp2.dart';
main() {!1
@@ -1653,8 +2259,10 @@ main() {!1
e1a();
e1b();
e2a();
-}''', <String>["1+i1", "1+i2", "1+e1a", "1+e2a", "1+e1b"],
- extraFiles: sources, failingTests: '1');
+}''',
+ <String>["1+i1", "1+i2", "1+e1a", "1+e2a", "1+e1b"],
+ extraFiles: sources,
+ failingTests: '1');
// Exercise import and export handling.
// Libraries are defined in partial order of increasing dependency.
@@ -1662,13 +2270,17 @@ main() {!1
sources["/l1.dart"] = '''
library l1;
var _l1t; var l1t;''';
- buildTests('testLibrary007', '''
+ buildTests(
+ 'testLibrary007',
+ '''
import 'l1.dart';
main() {
var x = l!1
var y = _!2
-}''', <String>["1+l1t", "1-_l1t", "2-_l1t"],
- extraFiles: sources, failingTests: '1');
+}''',
+ <String>["1+l1t", "1-_l1t", "2-_l1t"],
+ extraFiles: sources,
+ failingTests: '1');
// Check private library exclusion
sources.clear();
@@ -1685,7 +2297,9 @@ class Private extends NonPrivate {
void privateMethod() {
}
}''';
- buildTests('testLibrary008', '''
+ buildTests(
+ 'testLibrary008',
+ '''
import 'private.dart';
import 'public.dart';
class Test {
@@ -1693,8 +2307,10 @@ class Test {
NonPrivate x = new NonPrivate();
x.!1 //publicMethod but not privateMethod should appear
}
-}''', <String>["1-privateMethod", "1+publicMethod"],
- extraFiles: sources, failingTests: '1');
+}''',
+ <String>["1-privateMethod", "1+publicMethod"],
+ extraFiles: sources,
+ failingTests: '1');
// Exercise library prefixes.
sources.clear();
@@ -1703,7 +2319,9 @@ library lib;
int X = 1;
void m(){}
class Y {}''';
- buildTests('testLibrary009', '''
+ buildTests(
+ 'testLibrary009',
+ '''
import 'lib.dart' as Q;
void a() {
var x = Q.!1
@@ -1716,27 +2334,33 @@ void c() {
}
void d() {
new Q.!4
-}''', <String>[
- "1+X",
- "1+m",
- "1+Y",
- "2+X",
- "2+m",
- "2+Y",
- "3+X",
- "3+m",
- "3+Y",
- "4+Y",
- "4-m",
- "4-X"
- ], extraFiles: sources, failingTests: '1234');
+}''',
+ <String>[
+ "1+X",
+ "1+m",
+ "1+Y",
+ "2+X",
+ "2+m",
+ "2+Y",
+ "3+X",
+ "3+m",
+ "3+Y",
+ "4+Y",
+ "4-m",
+ "4-X"
+ ],
+ extraFiles: sources,
+ failingTests: '1234');
}
void buildNumberedTests() {
- buildTests('test001', '''
+ buildTests(
+ 'test001',
+ '''
void r1(var v) {
v.!1toString!2().!3hash!4Code
-}''', <String>[
+}''',
+ <String>[
"1+toString",
"1-==",
"2+toString",
@@ -1746,160 +2370,199 @@ void r1(var v) {
"4-toString"
]);
- buildTests('test002', '''
+ 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', '''
+ buildTests(
+ 'test004',
+ '''
class A {
int x;
A() : this.!1x = 1;
A.b() : this();
A.c() : this.!2b();
g() => new A.!3c();
-}''', <String>["1+x", "2+b", "3+c"], failingTests: '12');
+}''',
+ <String>["1+x", "2+b", "3+c"],
+ failingTests: '12');
- buildTests('test005', '''
+ buildTests(
+ 'test005',
+ '''
class A {}
void rr(var vim) {
var !1vq = v!2.toString();
var vf;
v!3.toString();
-}''', <String>[
- "1-A",
- "1-vim",
- "1+vq",
- "1-vf",
- "1-this",
- "1-void",
- "1-null",
- "1-false",
- "2-A",
- "2+vim",
- "2-vf",
- "2-vq",
- "2-this",
- "2-void",
- "2-null",
- "2-false",
- "3+vf",
- "3+vq",
- "3+vim",
- "3-A"
- ], failingTests: '1');
-
- buildTests('test006', '''
+}''',
+ <String>[
+ "1-A",
+ "1-vim",
+ "1+vq",
+ "1-vf",
+ "1-this",
+ "1-void",
+ "1-null",
+ "1-false",
+ "2-A",
+ "2+vim",
+ "2-vf",
+ "2-vq",
+ "2-this",
+ "2-void",
+ "2-null",
+ "2-false",
+ "3+vf",
+ "3+vq",
+ "3+vim",
+ "3-A"
+ ],
+ failingTests: '1');
+
+ 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('test008', '''
+ buildTests(
+ 'test008',
+ '''
!1class Aclass {}
class Bclass !2extends!3 !4Aclass {}
!5typedef Ctype = !6Bclass with !7Aclass;
class Dclass extends !8Ctype {}
!9abstract class Eclass implements Dclass,!C Ctype, Bclass {}
-class Fclass extends Bclass !Awith !B Eclass {}''', <String>[
- "1+class",
- "1-implements",
- "1-extends",
- "1-with",
- "2+extends",
- "3+extends",
- "4+Aclass",
- "4-Bclass",
- "5+typedef",
- "6+Bclass",
- "6-Ctype",
- "7+Aclass",
- "7-Bclass",
- "8+Ctype",
- "9+abstract",
- "A+with",
- "B+Eclass",
- "B-Dclass",
- "B-Ctype",
- "C+Bclass",
- "C-Eclass"
- ], failingTests: '23467ABC');
+class Fclass extends Bclass !Awith !B Eclass {}''',
+ <String>[
+ "1+class",
+ "1-implements",
+ "1-extends",
+ "1-with",
+ "2+extends",
+ "3+extends",
+ "4+Aclass",
+ "4-Bclass",
+ "5+typedef",
+ "6+Bclass",
+ "6-Ctype",
+ "7+Aclass",
+ "7-Bclass",
+ "8+Ctype",
+ "9+abstract",
+ "A+with",
+ "B+Eclass",
+ "B-Dclass",
+ "B-Ctype",
+ "C+Bclass",
+ "C-Eclass"
+ ],
+ failingTests: '23467ABC');
// keywords
- buildTests('test009', '''
+ buildTests(
+ 'test009',
+ '''
typedef !1dy!2namic TestFn1();
typedef !3vo!4id TestFn2();
-typ!7edef !5n!6''', <String>[
- "1+void",
- "1+TestFn2",
- "2+dynamic",
- "2-void",
- "3+dynamic",
- "4+void",
- "4-dynamic",
- "5+TestFn2",
- "6+num",
- "7+typedef"
- ], failingTests: '1234');
-
- buildTests('test010', '''
+typ!7edef !5n!6''',
+ <String>[
+ "1+void",
+ "1+TestFn2",
+ "2+dynamic",
+ "2-void",
+ "3+dynamic",
+ "4+void",
+ "4-dynamic",
+ "5+TestFn2",
+ "6+num",
+ "7+typedef"
+ ],
+ failingTests: '1234');
+
+ buildTests(
+ 'test010',
+ '''
class test !8<!1t !2 !3extends String,!4 List,!5 !6>!7 {}
-class tezetst !9<!BString,!C !DList>!A {}''', <String>[
- "1-String",
- "1-List",
- "1-test",
- "2-String",
- "2-test",
- "3+extends",
- "4-tezetst",
- "4-test",
- "5-String",
- "6-List",
- "7-List",
- "8-List",
- "9-String",
- "A-String",
- "B-String",
- "C-List",
- "C-tezetst",
- "D-List",
- "D-test"
- ], failingTests: '23');
+class tezetst !9<!BString,!C !DList>!A {}''',
+ <String>[
+ "1-String",
+ "1-List",
+ "1-test",
+ "2-String",
+ "2-test",
+ "3+extends",
+ "4-tezetst",
+ "4-test",
+ "5-String",
+ "6-List",
+ "7-List",
+ "8-List",
+ "9-String",
+ "A-String",
+ "B-String",
+ "C-List",
+ "C-tezetst",
+ "D-List",
+ "D-test"
+ ],
+ failingTests: '23');
// name generation with conflicts
buildTests('test011', '''r2(var object, Object object1, Object !1);''',
- <String>["1+object2"], failingTests: '1');
+ <String>["1+object2"],
+ failingTests: '1');
// reserved words
- buildTests('test012', '''
+ buildTests(
+ 'test012',
+ '''
class X {
f() {
g(!1var!2 z) {!3true.!4toString();};
}
-}''', <String>[
- "1+var",
- "1+dynamic",
- "1-f",
- "2+var",
- "2-dynamic",
- "3+false",
- "3+true",
- "4+toString"
- ], failingTests: '123');
+}''',
+ <String>[
+ "1+var",
+ "1+dynamic",
+ "1-f",
+ "2+var",
+ "2-dynamic",
+ "3+false",
+ "3+true",
+ "4+toString"
+ ],
+ failingTests: '123');
// conditions & operators
- buildTests('test013', '''
+ buildTests(
+ 'test013',
+ '''
class Q {
bool x;
List zs;
@@ -1914,22 +2577,26 @@ class Q {
} on !5Object catch(a){}
if (!7x !6) {} else {};
}
-}''', <String>[
- "1+x",
- "2+x",
- "3+zs",
- "4+k",
- "5+Q",
- "5-a",
- "6+==",
- "7+x",
- "8+==",
- "9+==",
- "0+k"
- ], failingTests: '689');
+}''',
+ <String>[
+ "1+x",
+ "2+x",
+ "3+zs",
+ "4+k",
+ "5+Q",
+ "5-a",
+ "6+==",
+ "7+x",
+ "8+==",
+ "9+==",
+ "0+k"
+ ],
+ failingTests: '689');
// keywords
- buildTests('test014', '''
+ buildTests(
+ 'test014',
+ '''
class Q {
bool x;
List zs;
@@ -1947,64 +2614,74 @@ class Q {
!Jif (x) {} !Kelse {};
!Lreturn;
}
-}''', <String>[
- "1+while",
- "2+do",
- "3+while",
- "4+for (!)",
- "5+in",
- "6+for (!)",
- "7+switch",
- "8+case",
- "9+default",
- "A+try",
- "B+on",
- "C+catch",
- "D+var",
- "E+void",
- "F+assert",
- "G+continue",
- "H+break",
- "J+if",
- "K+else",
- "L+return"
- ], failingTests: '35BCHK');
+}''',
+ <String>[
+ "1+while",
+ "2+do",
+ "3+while",
+ "4+for (!)",
+ "5+in",
+ "6+for (!)",
+ "7+switch",
+ "8+case",
+ "9+default",
+ "A+try",
+ "B+on",
+ "C+catch",
+ "D+var",
+ "E+void",
+ "F+assert",
+ "G+continue",
+ "H+break",
+ "J+if",
+ "K+else",
+ "L+return"
+ ],
+ failingTests: '35BCHK');
// operators in function
buildTests('test015', '''f(a,b,c) => a + b * c !1;''', <String>["1+=="],
failingTests: '1');
// operators in return
- buildTests('test016',
- '''class X {dynamic f(a,b,c) {return a + b * c !1;}}''', <String>[
- "1+=="
- ], failingTests: '1');
+ buildTests(
+ 'test016',
+ '''class X {dynamic f(a,b,c) {return a + b * c !1;}}''',
+ <String>["1+=="],
+ failingTests: '1');
// keywords
- buildTests('test017', '''
+ buildTests(
+ 'test017',
+ '''
!1!2import 'x' !5as r;
!3export '!8uri' !6hide Q !7show X;
-!4part 'x';''', <String>[
- "1+library",
- "2+import '!';",
- "3+export",
- "4+part",
- "5+as",
- "6+hide",
- "7+show",
- "8-null"
- ], failingTests: '567');
+!4part 'x';''',
+ <String>[
+ "1+library",
+ "2+import '!';",
+ "3+export",
+ "4+part",
+ "5+as",
+ "6+hide",
+ "7+show",
+ "8-null"
+ ],
+ failingTests: '567');
// keywords
buildTests('test018', '''!1part !2of foo;''', <String>["1+part", "2+of"],
failingTests: '2');
- 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"],
failingTests: '1');
@@ -2013,7 +2690,9 @@ main() {
buildTests('test022', '''var x = .!1;''', <String>["1-toString"]);
- buildTests('test023', '''
+ buildTests(
+ 'test023',
+ '''
class Map{getKeys(){}}
class X {
static x1(Map m) {
@@ -2022,18 +2701,24 @@ 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;
@@ -2065,7 +2750,8 @@ class T {
var g = R.!Em;
var h = R.!Fg();
}
-}''', <String>[
+}''',
+ <String>[
"1+m",
"2+_m",
"3+g",
@@ -2094,11 +2780,14 @@ class T {
buildTests('test030', '''n(){[1].forEach((x){!1});}''', <String>["1+x"]);
- buildTests('test031',
+ buildTests(
+ 'test031',
'''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;
@@ -2112,7 +2801,8 @@ m() {
case ONE!1: return;
default: return;
}
-}''', <String>[
+}''',
+ <String>[
"1+ONE",
"1-UKSI",
"2+EIN",
@@ -2123,14 +2813,18 @@ m() {
"3+ONE"
]);
- buildTests('test033',
+ buildTests(
+ 'test033',
'''class A{}class B extends A{b(){}}class C implements A {c(){}}class X{x(){A f;f.!1}}''',
- <String>["1+b", "1-c"], failingTests: '1');
+ <String>["1+b", "1-c"],
+ failingTests: '1');
// TODO(scheglov) decide what to do with Type for untyped field (not
// supported by the new store)
// test analysis of untyped fields and top-level vars
- buildTests('test034', '''
+ buildTests(
+ 'test034',
+ '''
var topvar;
class Top {top(){}}
class Left extends Top {left(){}}
@@ -2153,7 +2847,9 @@ class A {
topvar.!1top();
field.!2top();
}
-}''', <String>["1+top", "2+top"], failingTests: '12');
+}''',
+ <String>["1+top", "2+top"],
+ failingTests: '12');
// test analysis of untyped fields and top-level vars
buildTests('test035', '''class Y {final x='hi';mth() {x.!1length;}}''',
@@ -2162,7 +2858,9 @@ class A {
// TODO(scheglov) decide what to do with Type for untyped field (not
// supported by the new store)
// test analysis of untyped fields and top-level vars
- buildTests('test036', '''
+ buildTests(
+ 'test036',
+ '''
class A1 {
var field;
A1() : field = 0;
@@ -2174,16 +2872,24 @@ class A1 {
main() {
A1 a = new A1();
a.field.!2
-}''', <String>["1+round", "2+round"], failingTests: '12');
+}''',
+ <String>["1+round", "2+round"],
+ failingTests: '12');
- buildTests('test037', '''
+ buildTests(
+ 'test037',
+ '''
class HttpServer{}
class HttpClient{}
main() {
new HtS!1
-}''', <String>["1+HttpServer", "1-HttpClient"], failingTests: '1');
+}''',
+ <String>["1+HttpServer", "1-HttpClient"],
+ failingTests: '1');
- buildTests('test038', '''
+ buildTests(
+ 'test038',
+ '''
class X {
x(){}
}
@@ -2197,35 +2903,38 @@ class A<Z extends X> {
ay.!1y;
az.!2x;
}
-}''', <String>["1+y", "1-x", "2+x", "2-y"], failingTests: '2');
+}''',
+ <String>["1+y", "1-x", "2+x", "2-y"],
+ failingTests: '2');
// test analysis of untyped fields and top-level vars
- buildTests('test039', '''class X{}var x = null as !1X;''', <String>[
- "1+X",
- "1-void"
- ]);
+ buildTests('test039', '''class X{}var x = null as !1X;''',
+ <String>["1+X", "1-void"]);
// test arg lists with named params
buildTests('test040', '''m(){f(a, b, {x1, x2, y}) {};f(1, 2, !1)!2;}''',
- <String>["1+x1", "2-x2"], failingTests: '1');
+ <String>["1+x1", "2-x2"],
+ failingTests: '1');
// test arg lists with named params
buildTests('test041', '''m(){f(a, b, {x1, x2, y}) {};f(1, 2, !1''',
- <String>["1+x1", "1+x2", "1+y"], failingTests: '1');
+ <String>["1+x1", "1+x2", "1+y"],
+ failingTests: '1');
// test arg lists with named params
buildTests('test042', '''m(){f(a, b, {x1, x2, y}) {};f(1, 2, !1;!2''',
- <String>["1+x1", "1+x2", "2-y"], failingTests: '1');
+ <String>["1+x1", "1+x2", "2-y"],
+ failingTests: '1');
}
void buildOtherTests() {
buildTests('test_classMembers_inGetter',
'''class A { var fff; get z {ff!1}}''', <String>["1+fff"]);
- buildTests('testSingle',
- '''class A {int x; !2mth() {int y = this.x;}}class B{}''', <String>[
- "2+B"
- ]);
+ buildTests(
+ 'testSingle',
+ '''class A {int x; !2mth() {int y = this.x;}}class B{}''',
+ <String>["2+B"]);
}
/**
« no previous file with comments | « pkg/analysis_server/test/channel/web_socket_channel_test.dart ('k') | pkg/analysis_server/test/context_manager_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698