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

Unified Diff: pkg/analysis_server/test/services/completion/completion_test_util.dart

Issue 886463002: use CompletionTarget for replacement offset/length (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: address comments Created 5 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « pkg/analysis_server/lib/src/services/completion/dart_completion_manager.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: pkg/analysis_server/test/services/completion/completion_test_util.dart
diff --git a/pkg/analysis_server/test/services/completion/completion_test_util.dart b/pkg/analysis_server/test/services/completion/completion_test_util.dart
index 6f14dc2219602230dd93f00c290db14a053d8af7..53a329c0fe487df8f42910f2b00aad182a463fb5 100644
--- a/pkg/analysis_server/test/services/completion/completion_test_util.dart
+++ b/pkg/analysis_server/test/services/completion/completion_test_util.dart
@@ -10,7 +10,6 @@ import 'package:analysis_server/src/protocol.dart' as protocol show Element,
ElementKind;
import 'package:analysis_server/src/protocol.dart' hide Element, ElementKind;
import 'package:analysis_server/src/services/completion/completion_manager.dart';
-import 'package:analysis_server/src/services/completion/completion_target.dart';
import 'package:analysis_server/src/services/completion/dart_completion_cache.dart';
import 'package:analysis_server/src/services/completion/dart_completion_manager.dart';
import 'package:analysis_server/src/services/completion/imported_computer.dart';
@@ -45,6 +44,7 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
bool _computeFastCalled = false;
DartCompletionRequest request;
DartCompletionCache cache;
+ DartCompletionManager _completionManager;
void addResolvedUnit(String file, String code) {
Source source = addSource(file, code);
@@ -485,13 +485,17 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
bool computeFast() {
_computeFastCalled = true;
- testUnit = context.parseCompilationUnit(testSource);
- completionNode =
- new NodeLocator.con1(completionOffset).searchWithin(testUnit);
- request.unit = testUnit;
- request.node = completionNode;
- request.target = new CompletionTarget.forOffset(testUnit, completionOffset);
- return computer.computeFast(request);
+ _completionManager = new DartCompletionManager(
+ context,
+ searchEngine,
+ testSource,
+ cache,
+ [computer]);
+ var result = _completionManager.computeFast(request);
+ if (request.replacementOffset == null) {
+ fail('expected non null');
+ }
+ return result.isEmpty;
}
Future computeFull(assertFunction(bool result), {bool fullAnalysis: true}) {
@@ -531,16 +535,6 @@ abstract class AbstractCompletionTest extends AbstractContextTest {
request.unit = unit;
request.node =
new NodeLocator.con1(completionOffset).searchWithin(unit);
- if (request.node is SimpleIdentifier) {
- request.replacementOffset = request.node.offset;
- request.replacementLength = request.node.length;
- } else {
- request.replacementOffset = request.offset;
- request.replacementLength = 0;
- }
- if (request.replacementOffset == null) {
- fail('expected non null');
- }
resolved = true;
if (!fullAnalysis) {
break;
@@ -891,6 +885,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
void main() {expect(^)}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST);
assertSuggestLocalFunction('bar', 'String');
assertSuggestImportedFunction('hasLength', 'bool');
@@ -917,6 +913,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
void main() {expect(^)}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST);
assertSuggestLocalFunction('bar', 'String');
assertSuggestImportedFunction('hasLength', 'bool');
@@ -943,6 +941,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
void main() {expect(^)}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST);
assertSuggestLocalFunction('bar', 'String');
assertSuggestImportedFunction('hasLength', 'bool');
@@ -969,6 +969,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
String bar() => true;''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST);
assertSuggestLocalFunction('bar', 'String');
assertSuggestImportedFunction('hasLength', 'bool');
@@ -993,6 +995,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
void main() {expect(foo: ^)}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalFunction('bar', 'String');
assertSuggestImportedFunction('hasLength', 'bool');
assertNotSuggested('main');
@@ -1005,6 +1009,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class A {var b; X _c; foo() {var a; (a as ^).foo();}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertNotSuggested('b');
assertNotSuggested('_c');
assertSuggestImportedClass('Object');
@@ -1029,6 +1035,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('class A {} main() {int a; int b = ^}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalVariable('a', 'int');
assertSuggestLocalFunction('main', null);
assertSuggestLocalClass('A');
@@ -1045,6 +1053,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
^ b = 1;}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalClass('A');
assertSuggestImportedClass('int');
// TODO (danrubel) When entering 1st of 2 identifiers on assignment LHS
@@ -1068,6 +1078,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
b = 1;}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalClass('A');
assertSuggestImportedClass('int');
// Allow non-types preceding an identifier on LHS of assignment
@@ -1088,6 +1100,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
int^ b = 1;}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset - 3);
+ expect(request.replacementLength, 3);
assertSuggestLocalClass('A');
assertSuggestImportedClass('int');
// TODO (danrubel) When entering 1st of 2 identifiers on assignment LHS
@@ -1111,6 +1125,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
b = 1;}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset - 1);
+ expect(request.replacementLength, 1);
assertSuggestLocalClass('A');
assertSuggestImportedClass('int');
// Allow non-types preceding an identifier on LHS of assignment
@@ -1129,6 +1145,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main(){A a; await ^}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalVariable('a', 'A');
assertSuggestLocalFunction('main', null);
assertSuggestLocalClass('A');
@@ -1142,6 +1160,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('main() {int a = 1, b = ^ + 2;}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalVariable('a', 'int');
assertSuggestImportedClass('Object');
assertNotSuggested('b');
@@ -1154,6 +1174,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('main() {int a = 1, b = 2 + ^;}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalVariable('a', 'int');
assertSuggestImportedClass('Object');
assertNotSuggested('b');
@@ -1204,6 +1226,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class Z { }''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalClass('X');
assertSuggestLocalClass('Z');
@@ -1284,6 +1308,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class Z { }''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset - 1);
+ expect(request.replacementLength, 1);
assertSuggestLocalClass('X');
assertSuggestLocalClass('Z');
@@ -1340,6 +1366,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class A extends E implements I with M {a() {^}}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
// TODO (danrubel) prefer fields over getters
// If add `get e1;` to interface I
// then suggestions include getter e1 rather than field e1
@@ -1367,6 +1395,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class A extends E implements I with M {a() {^}}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalField('e1', null);
assertSuggestLocalField('f1', null);
assertSuggestLocalField('i1', 'int');
@@ -1393,6 +1423,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {A a; a.^.z}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationField('b', null);
assertSuggestInvocationField('_c', 'X');
assertNotSuggested('Object');
@@ -1415,6 +1447,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {A a; a..^z}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 1);
assertSuggestInvocationField('b', null);
assertSuggestInvocationField('_c', 'X');
assertNotSuggested('Object');
@@ -1437,6 +1471,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {A a; a..^ return}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationField('b', null);
assertSuggestInvocationField('_c', 'X');
assertNotSuggested('Object');
@@ -1456,6 +1492,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {A a; a^..b}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset - 1);
+ expect(request.replacementLength, 1);
assertNotSuggested('b');
assertNotSuggested('_c');
assertSuggestLocalVariable('a', 'A');
@@ -1472,6 +1510,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('class A {a() {try{var x;} on E catch (e) {^}}}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestParameter('e', 'E');
assertSuggestLocalMethod('a', 'A', null);
assertSuggestImportedClass('Object');
@@ -1484,6 +1524,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('class A {a() {try{var x;} catch (e, s) {^}}}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestParameter('e', null);
assertSuggestParameter('s', 'StackTrace');
assertSuggestLocalMethod('a', 'A', null);
@@ -1503,6 +1545,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
A T;''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
CompletionSuggestion suggestionA = assertSuggestLocalClass(
'A',
relevance: COMPLETION_RELEVANCE_LOW,
@@ -1584,6 +1628,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class A {var b; X _c; foo() {A a; if (^) something}}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalField('b', null);
assertSuggestLocalField('_c', 'X');
assertSuggestImportedClass('Object');
@@ -1598,6 +1644,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {var a; if (a.^) something}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationMethod('toString', 'Object', 'String');
//TODO (danrubel) type for '_c' should be 'X' not null
assertNotSuggested('Object');
@@ -1620,6 +1668,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {new X.^}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestNamedConstructor('c', 'X');
assertNotSuggested('F1');
assertNotSuggested('T1');
@@ -1643,6 +1693,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {new X.^}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestNamedConstructor('c', 'X');
assertNotSuggested('F1');
assertNotSuggested('T1');
@@ -1659,6 +1711,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {new String.fr^omCharCodes([]);}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset - 2);
+ expect(request.replacementLength, 13);
assertSuggestNamedConstructor('fromCharCodes', 'String');
assertNotSuggested('isEmpty');
assertNotSuggested('isNotEmpty');
@@ -1678,6 +1732,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {new X.^}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestNamedConstructor('c', 'X');
assertSuggestNamedConstructor('_d', 'X');
assertNotSuggested('F1');
@@ -1697,6 +1753,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {new X.^}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestNamedConstructor('c', 'X');
assertSuggestNamedConstructor('_d', 'X');
assertNotSuggested('F1');
@@ -1719,6 +1777,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class C {foo(){^} void bar() {}}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestImportedClass('A');
assertSuggestImportedFunction('F1', '_B', false);
assertSuggestLocalClass('C');
@@ -1777,6 +1837,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('main(args) {for (int foo in bar) {^}}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalVariable('foo', 'int');
assertSuggestImportedClass('Object');
});
@@ -1787,6 +1849,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('main(args) {for (foo in bar) {^}}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalVariable('foo', null);
assertSuggestImportedClass('Object');
});
@@ -1800,6 +1864,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class A {a(^) { }}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalFunction('foo', null);
assertSuggestLocalMethod('a', 'A', null);
assertSuggestLocalClass('A');
@@ -1814,6 +1880,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('main(args) {for (int i; i < 10; ++i) {^}}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalVariable('i', 'int');
assertSuggestImportedClass('Object');
});
@@ -1824,6 +1892,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('main() {for (int index = 0; i^)}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset - 1);
+ expect(request.replacementLength, 1);
assertSuggestLocalVariable('index', 'int');
});
}
@@ -1833,6 +1903,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('main() {List a; for (^)}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalVariable('a', 'List');
assertSuggestImportedClass('Object');
assertSuggestImportedClass('int');
@@ -1844,6 +1916,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('main() {for (int index = 0; index < 10; i^)}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset - 1);
+ expect(request.replacementLength, 1);
assertSuggestLocalVariable('index', 'int');
});
}
@@ -1855,6 +1929,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {for (int index = 0; index < 10; ++i^)}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset - 1);
+ expect(request.replacementLength, 1);
assertSuggestLocalVariable('index', 'int');
assertSuggestLocalFunction('main', null);
assertNotSuggested('bar');
@@ -1868,6 +1944,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
String foo(List args) {x.then((R b) {^});}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
var f = assertSuggestLocalFunction('foo', 'String', false);
if (f != null) {
expect(f.element.isPrivate, isFalse);
@@ -1886,6 +1964,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main(){var a; if (^)}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalVariable('a', null);
assertSuggestLocalFunction('main', null);
assertSuggestLocalClass('A');
@@ -1918,6 +1998,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class C {foo(){var f; {var x;} new ^}}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestImportedClass('Object');
assertSuggestImportedClass('A');
assertSuggestLocalClass('B');
@@ -1937,6 +2019,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('main() {String name; print("hello \$^");}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalVariable('name', 'String');
assertSuggestImportedClass('Object');
});
@@ -1958,6 +2042,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('main() {String name; print("hello \${name.^}");}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationGetter('length', 'int');
assertNotSuggested('name');
assertNotSuggested('Object');
@@ -1989,6 +2075,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {var x; if (x is ^) { }}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestImportedClass('X');
assertSuggestLocalClass('Y');
assertNotSuggested('x');
@@ -2006,6 +2094,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main(){var a; if (^ is A)}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalVariable('a', null);
assertSuggestLocalFunction('main', null);
assertSuggestLocalFunction('foo', null);
@@ -2022,6 +2112,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main(){var a; if (a is ^)}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertNotSuggested('a');
assertNotSuggested('main');
assertSuggestLocalClass('A');
@@ -2036,6 +2128,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main(){var a; if (a is Obj^)}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset - 3);
+ expect(request.replacementLength, 3);
assertNotSuggested('a');
assertNotSuggested('main');
assertSuggestLocalClass('A');
@@ -2057,6 +2151,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('class A {@deprecated X get f => 0; Z a() {^} get _g => 1;}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
CompletionSuggestion methodA = assertSuggestLocalMethod('a', 'A', 'Z');
if (methodA != null) {
expect(methodA.element.isDeprecated, isFalse);
@@ -2084,6 +2180,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('class A {@deprecated X f; Z _a() {^} var _g;}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
CompletionSuggestion methodA = assertSuggestLocalMethod('_a', 'A', 'Z');
if (methodA != null) {
expect(methodA.element.isDeprecated, isFalse);
@@ -2114,6 +2212,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('class A {@deprecated Z a(X x, _, b, {y: boo}) {^}}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
CompletionSuggestion methodA = assertSuggestLocalMethod(
'a',
'A',
@@ -2140,6 +2240,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class A {Z a(X x, [int y=1]) {^}}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalFunction('foo', null);
assertSuggestLocalFunction('bar', 'void');
assertSuggestLocalMethod('a', 'A', 'Z');
@@ -2163,6 +2265,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class X{}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationGetter('f', 'X');
assertSuggestInvocationGetter('_g', null);
assertNotSuggested('b');
@@ -2200,6 +2304,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {new ^}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalClass('B');
assertSuggestImportedClass('Object');
assertSuggestImportedClass('X');
@@ -2231,6 +2337,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
var m;''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestLocalClass('A');
assertSuggestImportedClass('Object');
assertSuggestImportedClass('X');
@@ -2266,6 +2374,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {A.^}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationField('scA', 'String');
assertSuggestInvocationField('scB', 'int');
assertSuggestInvocationField('scI', null);
@@ -2305,6 +2415,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {A a; a.^}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationField('sc', 'int');
assertSuggestInvocationField('b', null, isDeprecated: true);
assertNotSuggested('_c');
@@ -2338,6 +2450,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class X{}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationField('sc', 'int');
assertSuggestInvocationField('b', null);
assertSuggestInvocationField('_c', 'X');
@@ -2371,6 +2485,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
main() {b.^}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationClass('X');
assertSuggestInvocationClass('Y');
assertSuggestInvocationTopLevelVar('T1', null);
@@ -2394,6 +2510,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
foo(X x) {x.^}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationField('y', 'M');
assertNotSuggested('_z');
assertNotSuggested('==');
@@ -2410,6 +2528,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class X {foo(){A^.bar}}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset - 1);
+ expect(request.replacementLength, 1);
assertSuggestImportedClass('A');
assertSuggestLocalClass('X');
assertSuggestLocalMethod('foo', 'X', null);
@@ -2423,6 +2543,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('class A {String x; int get foo {x.^}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationGetter('isEmpty', 'bool');
assertSuggestInvocationMethod('compareTo', 'Comparable', 'int');
});
@@ -2433,6 +2555,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('class A {String x; int get foo {x.^ int y = 0;}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationGetter('isEmpty', 'bool');
assertSuggestInvocationMethod('compareTo', 'Comparable', 'int');
});
@@ -2443,6 +2567,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('class A {a() {"hello".to^String().length}}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset - 2);
+ expect(request.replacementLength, 8);
assertSuggestInvocationGetter('length', 'int');
assertNotSuggested('A');
assertNotSuggested('a');
@@ -2456,6 +2582,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
addTestSource('class A {a() {"hello".length.^}}');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationGetter('isEven', 'bool');
assertNotSuggested('A');
assertNotSuggested('a');
@@ -2480,6 +2608,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class X{}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationField('b', null);
assertSuggestInvocationField('_c', 'X');
assertSuggestInvocationGetter('d', 'X');
@@ -2515,6 +2645,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class X{}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestInvocationField('b', null);
assertSuggestInvocationField('_c', 'X');
assertSuggestInvocationGetter('d', 'X');
@@ -2586,6 +2718,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class C {bar(){var f; {var x;} var e = ^}}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestImportedClass('X');
assertNotSuggested('_B');
assertSuggestLocalClass('Y');
@@ -2613,6 +2747,8 @@ abstract class AbstractSelectorSuggestionTest extends AbstractCompletionTest {
class C {bar(){var f; {var x;} var e = ^ var g}}''');
computeFast();
return computeFull((bool result) {
+ expect(request.replacementOffset, completionOffset);
+ expect(request.replacementLength, 0);
assertSuggestImportedClass('X');
assertSuggestImportedFunction('foo1', null);
assertNotSuggested('bar1');
« no previous file with comments | « pkg/analysis_server/lib/src/services/completion/dart_completion_manager.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698