| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file |
| 2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
| 3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
| 4 | 4 |
| 5 import 'package:analysis_server/src/protocol_server.dart'; | 5 import 'package:analysis_server/src/protocol_server.dart'; |
| 6 import 'package:analysis_server/src/provisional/completion/dart/completion_dart.
dart'; | 6 import 'package:analysis_server/src/provisional/completion/dart/completion_dart.
dart'; |
| 7 import 'package:analysis_server/src/services/completion/dart/local_reference_con
tributor.dart'; | 7 import 'package:analysis_server/src/services/completion/dart/local_reference_con
tributor.dart'; |
| 8 import 'package:test/test.dart'; | 8 import 'package:test/test.dart'; |
| 9 import 'package:test_reflective_loader/test_reflective_loader.dart'; | 9 import 'package:test_reflective_loader/test_reflective_loader.dart'; |
| 10 | 10 |
| (...skipping 112 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 123 await computeSuggestions(); | 123 await computeSuggestions(); |
| 124 | 124 |
| 125 assertSuggestMethod('foo', 'A', 'bool', | 125 assertSuggestMethod('foo', 'A', 'bool', |
| 126 relevance: DART_RELEVANCE_LOCAL_METHOD, | 126 relevance: DART_RELEVANCE_LOCAL_METHOD, |
| 127 defaultArgListString: 'bar, baz: null', | 127 defaultArgListString: 'bar, baz: null', |
| 128 defaultArgumentListTextRanges: [0, 3, 10, 4]); | 128 defaultArgumentListTextRanges: [0, 3, 10, 4]); |
| 129 } | 129 } |
| 130 | 130 |
| 131 test_ArgumentList() async { | 131 test_ArgumentList() async { |
| 132 // ArgumentList MethodInvocation ExpressionStatement Block | 132 // ArgumentList MethodInvocation ExpressionStatement Block |
| 133 addSource( | 133 addSource('/libA.dart', ''' |
| 134 '/libA.dart', | |
| 135 ''' | |
| 136 library A; | 134 library A; |
| 137 bool hasLength(int expected) { } | 135 bool hasLength(int expected) { } |
| 138 void baz() { }'''); | 136 void baz() { }'''); |
| 139 addTestSource(''' | 137 addTestSource(''' |
| 140 import '/libA.dart'; | 138 import '/libA.dart'; |
| 141 class B { } | 139 class B { } |
| 142 String bar() => true; | 140 String bar() => true; |
| 143 void main() {expect(^)}'''); | 141 void main() {expect(^)}'''); |
| 144 await computeSuggestions(); | 142 await computeSuggestions(); |
| 145 | 143 |
| 146 expect(replacementOffset, completionOffset); | 144 expect(replacementOffset, completionOffset); |
| 147 expect(replacementLength, 0); | 145 expect(replacementLength, 0); |
| 148 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); | 146 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); |
| 149 assertSuggestFunction('bar', 'String', | 147 assertSuggestFunction('bar', 'String', |
| 150 relevance: DART_RELEVANCE_LOCAL_FUNCTION); | 148 relevance: DART_RELEVANCE_LOCAL_FUNCTION); |
| 151 assertNotSuggested('hasLength'); | 149 assertNotSuggested('hasLength'); |
| 152 assertNotSuggested('identical'); | 150 assertNotSuggested('identical'); |
| 153 assertSuggestClass('B'); | 151 assertSuggestClass('B'); |
| 154 assertNotSuggested('Object'); | 152 assertNotSuggested('Object'); |
| 155 assertNotSuggested('main'); | 153 assertNotSuggested('main'); |
| 156 assertNotSuggested('baz'); | 154 assertNotSuggested('baz'); |
| 157 assertNotSuggested('print'); | 155 assertNotSuggested('print'); |
| 158 } | 156 } |
| 159 | 157 |
| 160 test_ArgumentList_imported_function() async { | 158 test_ArgumentList_imported_function() async { |
| 161 // ArgumentList MethodInvocation ExpressionStatement Block | 159 // ArgumentList MethodInvocation ExpressionStatement Block |
| 162 addSource( | 160 addSource('/libA.dart', ''' |
| 163 '/libA.dart', | |
| 164 ''' | |
| 165 library A; | 161 library A; |
| 166 bool hasLength(int expected) { } | 162 bool hasLength(int expected) { } |
| 167 expect(arg) { } | 163 expect(arg) { } |
| 168 void baz() { }'''); | 164 void baz() { }'''); |
| 169 addTestSource(''' | 165 addTestSource(''' |
| 170 import '/libA.dart' | 166 import '/libA.dart' |
| 171 class B { } | 167 class B { } |
| 172 String bar() => true; | 168 String bar() => true; |
| 173 void main() {expect(^)}'''); | 169 void main() {expect(^)}'''); |
| 174 await computeSuggestions(); | 170 await computeSuggestions(); |
| 175 | 171 |
| 176 expect(replacementOffset, completionOffset); | 172 expect(replacementOffset, completionOffset); |
| 177 expect(replacementLength, 0); | 173 expect(replacementLength, 0); |
| 178 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); | 174 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); |
| 179 assertSuggestFunction('bar', 'String', | 175 assertSuggestFunction('bar', 'String', |
| 180 relevance: DART_RELEVANCE_LOCAL_FUNCTION); | 176 relevance: DART_RELEVANCE_LOCAL_FUNCTION); |
| 181 assertNotSuggested('hasLength'); | 177 assertNotSuggested('hasLength'); |
| 182 assertNotSuggested('identical'); | 178 assertNotSuggested('identical'); |
| 183 assertSuggestClass('B'); | 179 assertSuggestClass('B'); |
| 184 assertNotSuggested('Object'); | 180 assertNotSuggested('Object'); |
| 185 assertNotSuggested('main'); | 181 assertNotSuggested('main'); |
| 186 assertNotSuggested('baz'); | 182 assertNotSuggested('baz'); |
| 187 assertNotSuggested('print'); | 183 assertNotSuggested('print'); |
| 188 } | 184 } |
| 189 | 185 |
| 190 test_ArgumentList_InstanceCreationExpression_functionalArg() async { | 186 test_ArgumentList_InstanceCreationExpression_functionalArg() async { |
| 191 // ArgumentList InstanceCreationExpression ExpressionStatement Block | 187 // ArgumentList InstanceCreationExpression ExpressionStatement Block |
| 192 addSource( | 188 addSource('/libA.dart', ''' |
| 193 '/libA.dart', | |
| 194 ''' | |
| 195 library A; | 189 library A; |
| 196 class A { A(f()) { } } | 190 class A { A(f()) { } } |
| 197 bool hasLength(int expected) { } | 191 bool hasLength(int expected) { } |
| 198 void baz() { }'''); | 192 void baz() { }'''); |
| 199 addTestSource(''' | 193 addTestSource(''' |
| 200 import 'dart:async'; | 194 import 'dart:async'; |
| 201 import '/libA.dart'; | 195 import '/libA.dart'; |
| 202 class B { } | 196 class B { } |
| 203 String bar() => true; | 197 String bar() => true; |
| 204 void main() {new A(^)}'''); | 198 void main() {new A(^)}'''); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 215 assertSuggestClass('B', kind: CompletionSuggestionKind.IDENTIFIER); | 209 assertSuggestClass('B', kind: CompletionSuggestionKind.IDENTIFIER); |
| 216 assertNotSuggested('A'); | 210 assertNotSuggested('A'); |
| 217 assertNotSuggested('Object'); | 211 assertNotSuggested('Object'); |
| 218 assertNotSuggested('main'); | 212 assertNotSuggested('main'); |
| 219 assertNotSuggested('baz'); | 213 assertNotSuggested('baz'); |
| 220 assertNotSuggested('print'); | 214 assertNotSuggested('print'); |
| 221 } | 215 } |
| 222 | 216 |
| 223 test_ArgumentList_InstanceCreationExpression_typedefArg() async { | 217 test_ArgumentList_InstanceCreationExpression_typedefArg() async { |
| 224 // ArgumentList InstanceCreationExpression ExpressionStatement Block | 218 // ArgumentList InstanceCreationExpression ExpressionStatement Block |
| 225 addSource( | 219 addSource('/libA.dart', ''' |
| 226 '/libA.dart', | |
| 227 ''' | |
| 228 library A; | 220 library A; |
| 229 typedef Funct(); | 221 typedef Funct(); |
| 230 class A { A(Funct f) { } } | 222 class A { A(Funct f) { } } |
| 231 bool hasLength(int expected) { } | 223 bool hasLength(int expected) { } |
| 232 void baz() { }'''); | 224 void baz() { }'''); |
| 233 addTestSource(''' | 225 addTestSource(''' |
| 234 import 'dart:async'; | 226 import 'dart:async'; |
| 235 import '/libA.dart'; | 227 import '/libA.dart'; |
| 236 class B { } | 228 class B { } |
| 237 String bar() => true; | 229 String bar() => true; |
| (...skipping 11 matching lines...) Expand all Loading... |
| 249 assertSuggestClass('B', kind: CompletionSuggestionKind.IDENTIFIER); | 241 assertSuggestClass('B', kind: CompletionSuggestionKind.IDENTIFIER); |
| 250 assertNotSuggested('A'); | 242 assertNotSuggested('A'); |
| 251 assertNotSuggested('Object'); | 243 assertNotSuggested('Object'); |
| 252 assertNotSuggested('main'); | 244 assertNotSuggested('main'); |
| 253 assertNotSuggested('baz'); | 245 assertNotSuggested('baz'); |
| 254 assertNotSuggested('print'); | 246 assertNotSuggested('print'); |
| 255 } | 247 } |
| 256 | 248 |
| 257 test_ArgumentList_local_function() async { | 249 test_ArgumentList_local_function() async { |
| 258 // ArgumentList MethodInvocation ExpressionStatement Block | 250 // ArgumentList MethodInvocation ExpressionStatement Block |
| 259 addSource( | 251 addSource('/libA.dart', ''' |
| 260 '/libA.dart', | |
| 261 ''' | |
| 262 library A; | 252 library A; |
| 263 bool hasLength(int expected) { } | 253 bool hasLength(int expected) { } |
| 264 void baz() { }'''); | 254 void baz() { }'''); |
| 265 addTestSource(''' | 255 addTestSource(''' |
| 266 import '/libA.dart' | 256 import '/libA.dart' |
| 267 expect(arg) { } | 257 expect(arg) { } |
| 268 class B { } | 258 class B { } |
| 269 String bar() => true; | 259 String bar() => true; |
| 270 void main() {expect(^)}'''); | 260 void main() {expect(^)}'''); |
| 271 await computeSuggestions(); | 261 await computeSuggestions(); |
| 272 | 262 |
| 273 expect(replacementOffset, completionOffset); | 263 expect(replacementOffset, completionOffset); |
| 274 expect(replacementLength, 0); | 264 expect(replacementLength, 0); |
| 275 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); | 265 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); |
| 276 assertSuggestFunction('bar', 'String', | 266 assertSuggestFunction('bar', 'String', |
| 277 relevance: DART_RELEVANCE_LOCAL_FUNCTION); | 267 relevance: DART_RELEVANCE_LOCAL_FUNCTION); |
| 278 assertNotSuggested('hasLength'); | 268 assertNotSuggested('hasLength'); |
| 279 assertNotSuggested('identical'); | 269 assertNotSuggested('identical'); |
| 280 assertSuggestClass('B'); | 270 assertSuggestClass('B'); |
| 281 assertNotSuggested('Object'); | 271 assertNotSuggested('Object'); |
| 282 assertNotSuggested('main'); | 272 assertNotSuggested('main'); |
| 283 assertNotSuggested('baz'); | 273 assertNotSuggested('baz'); |
| 284 assertNotSuggested('print'); | 274 assertNotSuggested('print'); |
| 285 } | 275 } |
| 286 | 276 |
| 287 test_ArgumentList_local_method() async { | 277 test_ArgumentList_local_method() async { |
| 288 // ArgumentList MethodInvocation ExpressionStatement Block | 278 // ArgumentList MethodInvocation ExpressionStatement Block |
| 289 addSource( | 279 addSource('/libA.dart', ''' |
| 290 '/libA.dart', | |
| 291 ''' | |
| 292 library A; | 280 library A; |
| 293 bool hasLength(int expected) { } | 281 bool hasLength(int expected) { } |
| 294 void baz() { }'''); | 282 void baz() { }'''); |
| 295 addTestSource(''' | 283 addTestSource(''' |
| 296 import '/libA.dart' | 284 import '/libA.dart' |
| 297 class B { | 285 class B { |
| 298 expect(arg) { } | 286 expect(arg) { } |
| 299 void foo() {expect(^)}} | 287 void foo() {expect(^)}} |
| 300 String bar() => true;'''); | 288 String bar() => true;'''); |
| 301 await computeSuggestions(); | 289 await computeSuggestions(); |
| 302 | 290 |
| 303 expect(replacementOffset, completionOffset); | 291 expect(replacementOffset, completionOffset); |
| 304 expect(replacementLength, 0); | 292 expect(replacementLength, 0); |
| 305 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); | 293 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); |
| 306 assertSuggestFunction('bar', 'String', | 294 assertSuggestFunction('bar', 'String', |
| 307 relevance: DART_RELEVANCE_LOCAL_FUNCTION); | 295 relevance: DART_RELEVANCE_LOCAL_FUNCTION); |
| 308 assertNotSuggested('hasLength'); | 296 assertNotSuggested('hasLength'); |
| 309 assertNotSuggested('identical'); | 297 assertNotSuggested('identical'); |
| 310 assertSuggestClass('B'); | 298 assertSuggestClass('B'); |
| 311 assertNotSuggested('Object'); | 299 assertNotSuggested('Object'); |
| 312 assertNotSuggested('main'); | 300 assertNotSuggested('main'); |
| 313 assertNotSuggested('baz'); | 301 assertNotSuggested('baz'); |
| 314 assertNotSuggested('print'); | 302 assertNotSuggested('print'); |
| 315 } | 303 } |
| 316 | 304 |
| 317 test_ArgumentList_MethodInvocation_functionalArg() async { | 305 test_ArgumentList_MethodInvocation_functionalArg() async { |
| 318 // ArgumentList MethodInvocation ExpressionStatement Block | 306 // ArgumentList MethodInvocation ExpressionStatement Block |
| 319 addSource( | 307 addSource('/libA.dart', ''' |
| 320 '/libA.dart', | |
| 321 ''' | |
| 322 library A; | 308 library A; |
| 323 class A { A(f()) { } } | 309 class A { A(f()) { } } |
| 324 bool hasLength(int expected) { } | 310 bool hasLength(int expected) { } |
| 325 void baz() { }'''); | 311 void baz() { }'''); |
| 326 addTestSource(''' | 312 addTestSource(''' |
| 327 import 'dart:async'; | 313 import 'dart:async'; |
| 328 import '/libA.dart'; | 314 import '/libA.dart'; |
| 329 class B { } | 315 class B { } |
| 330 String bar(f()) => true; | 316 String bar(f()) => true; |
| 331 void main() {boo(){} bar(^);}'''); | 317 void main() {boo(){} bar(^);}'''); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 345 assertSuggestClass('B', kind: CompletionSuggestionKind.IDENTIFIER); | 331 assertSuggestClass('B', kind: CompletionSuggestionKind.IDENTIFIER); |
| 346 assertNotSuggested('A'); | 332 assertNotSuggested('A'); |
| 347 assertNotSuggested('Object'); | 333 assertNotSuggested('Object'); |
| 348 assertNotSuggested('main'); | 334 assertNotSuggested('main'); |
| 349 assertNotSuggested('baz'); | 335 assertNotSuggested('baz'); |
| 350 assertNotSuggested('print'); | 336 assertNotSuggested('print'); |
| 351 } | 337 } |
| 352 | 338 |
| 353 test_ArgumentList_MethodInvocation_functionalArg2() async { | 339 test_ArgumentList_MethodInvocation_functionalArg2() async { |
| 354 // ArgumentList MethodInvocation ExpressionStatement Block | 340 // ArgumentList MethodInvocation ExpressionStatement Block |
| 355 addSource( | 341 addSource('/libA.dart', ''' |
| 356 '/libA.dart', | |
| 357 ''' | |
| 358 library A; | 342 library A; |
| 359 class A { A(f()) { } } | 343 class A { A(f()) { } } |
| 360 bool hasLength(int expected) { } | 344 bool hasLength(int expected) { } |
| 361 void baz() { }'''); | 345 void baz() { }'''); |
| 362 addTestSource(''' | 346 addTestSource(''' |
| 363 import 'dart:async'; | 347 import 'dart:async'; |
| 364 import '/libA.dart'; | 348 import '/libA.dart'; |
| 365 class B { } | 349 class B { } |
| 366 String bar({inc()}) => true; | 350 String bar({inc()}) => true; |
| 367 void main() {boo(){} bar(inc: ^);}'''); | 351 void main() {boo(){} bar(inc: ^);}'''); |
| (...skipping 13 matching lines...) Expand all Loading... |
| 381 assertSuggestClass('B', kind: CompletionSuggestionKind.IDENTIFIER); | 365 assertSuggestClass('B', kind: CompletionSuggestionKind.IDENTIFIER); |
| 382 assertNotSuggested('A'); | 366 assertNotSuggested('A'); |
| 383 assertNotSuggested('Object'); | 367 assertNotSuggested('Object'); |
| 384 assertNotSuggested('main'); | 368 assertNotSuggested('main'); |
| 385 assertNotSuggested('baz'); | 369 assertNotSuggested('baz'); |
| 386 assertNotSuggested('print'); | 370 assertNotSuggested('print'); |
| 387 } | 371 } |
| 388 | 372 |
| 389 test_ArgumentList_MethodInvocation_methodArg() async { | 373 test_ArgumentList_MethodInvocation_methodArg() async { |
| 390 // ArgumentList MethodInvocation ExpressionStatement Block | 374 // ArgumentList MethodInvocation ExpressionStatement Block |
| 391 addSource( | 375 addSource('/libA.dart', ''' |
| 392 '/libA.dart', | |
| 393 ''' | |
| 394 library A; | 376 library A; |
| 395 class A { A(f()) { } } | 377 class A { A(f()) { } } |
| 396 bool hasLength(int expected) { } | 378 bool hasLength(int expected) { } |
| 397 void baz() { }'''); | 379 void baz() { }'''); |
| 398 addTestSource(''' | 380 addTestSource(''' |
| 399 import 'dart:async'; | 381 import 'dart:async'; |
| 400 import '/libA.dart'; | 382 import '/libA.dart'; |
| 401 class B { String bar(f()) => true; } | 383 class B { String bar(f()) => true; } |
| 402 void main() {new B().bar(^);}'''); | 384 void main() {new B().bar(^);}'''); |
| 403 await computeSuggestions(); | 385 await computeSuggestions(); |
| 404 | 386 |
| 405 expect(replacementOffset, completionOffset); | 387 expect(replacementOffset, completionOffset); |
| 406 expect(replacementLength, 0); | 388 expect(replacementLength, 0); |
| 407 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); | 389 assertNoSuggestions(kind: CompletionSuggestionKind.ARGUMENT_LIST); |
| 408 assertNotSuggested('hasLength'); | 390 assertNotSuggested('hasLength'); |
| 409 assertNotSuggested('identical'); | 391 assertNotSuggested('identical'); |
| 410 assertSuggestClass('B', kind: CompletionSuggestionKind.IDENTIFIER); | 392 assertSuggestClass('B', kind: CompletionSuggestionKind.IDENTIFIER); |
| 411 assertNotSuggested('A'); | 393 assertNotSuggested('A'); |
| 412 assertNotSuggested('Object'); | 394 assertNotSuggested('Object'); |
| 413 assertNotSuggested('main'); | 395 assertNotSuggested('main'); |
| 414 assertNotSuggested('baz'); | 396 assertNotSuggested('baz'); |
| 415 assertNotSuggested('print'); | 397 assertNotSuggested('print'); |
| 416 } | 398 } |
| 417 | 399 |
| 418 test_ArgumentList_namedFieldParam_tear_off() async { | 400 test_ArgumentList_namedFieldParam_tear_off() async { |
| 419 addSource( | 401 addSource('/libA.dart', ''' |
| 420 '/libA.dart', | |
| 421 ''' | |
| 422 typedef void VoidCallback(); | 402 typedef void VoidCallback(); |
| 423 | 403 |
| 424 class Button { | 404 class Button { |
| 425 final VoidCallback onPressed; | 405 final VoidCallback onPressed; |
| 426 Button({this.onPressed}); | 406 Button({this.onPressed}); |
| 427 } | 407 } |
| 428 '''); | 408 '''); |
| 429 addTestSource(''' | 409 addTestSource(''' |
| 430 import '/libA.dart'; | 410 import '/libA.dart'; |
| 431 | 411 |
| (...skipping 10 matching lines...) Expand all Loading... |
| 442 expect(replacementOffset, completionOffset); | 422 expect(replacementOffset, completionOffset); |
| 443 expect(replacementLength, 0); | 423 expect(replacementLength, 0); |
| 444 | 424 |
| 445 assertSuggest('_incrementCounter', | 425 assertSuggest('_incrementCounter', |
| 446 csKind: CompletionSuggestionKind.IDENTIFIER); | 426 csKind: CompletionSuggestionKind.IDENTIFIER); |
| 447 } | 427 } |
| 448 | 428 |
| 449 test_ArgumentList_namedParam() async { | 429 test_ArgumentList_namedParam() async { |
| 450 // SimpleIdentifier NamedExpression ArgumentList MethodInvocation | 430 // SimpleIdentifier NamedExpression ArgumentList MethodInvocation |
| 451 // ExpressionStatement | 431 // ExpressionStatement |
| 452 addSource( | 432 addSource('/libA.dart', ''' |
| 453 '/libA.dart', | |
| 454 ''' | |
| 455 library A; | 433 library A; |
| 456 bool hasLength(int expected) { }'''); | 434 bool hasLength(int expected) { }'''); |
| 457 addTestSource(''' | 435 addTestSource(''' |
| 458 import '/libA.dart' | 436 import '/libA.dart' |
| 459 String bar() => true; | 437 String bar() => true; |
| 460 void main() {expect(foo: ^)}'''); | 438 void main() {expect(foo: ^)}'''); |
| 461 await computeSuggestions(); | 439 await computeSuggestions(); |
| 462 | 440 |
| 463 expect(replacementOffset, completionOffset); | 441 expect(replacementOffset, completionOffset); |
| 464 expect(replacementLength, 0); | 442 expect(replacementLength, 0); |
| (...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 499 assertSuggestTopLevelVar('c', 'C', | 477 assertSuggestTopLevelVar('c', 'C', |
| 500 relevance: | 478 relevance: |
| 501 DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE + DART_RELEVANCE_INCREMENT); | 479 DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE + DART_RELEVANCE_INCREMENT); |
| 502 assertSuggestTopLevelVar('d', 'D', | 480 assertSuggestTopLevelVar('d', 'D', |
| 503 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); | 481 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); |
| 504 assertSuggestTopLevelVar('e', 'E', | 482 assertSuggestTopLevelVar('e', 'E', |
| 505 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); | 483 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); |
| 506 } | 484 } |
| 507 | 485 |
| 508 test_ArgumentList_namedParam_tear_off() async { | 486 test_ArgumentList_namedParam_tear_off() async { |
| 509 addSource( | 487 addSource('/libA.dart', ''' |
| 510 '/libA.dart', | |
| 511 ''' | |
| 512 typedef void VoidCallback(); | 488 typedef void VoidCallback(); |
| 513 | 489 |
| 514 class Button { | 490 class Button { |
| 515 Button({VoidCallback onPressed}); | 491 Button({VoidCallback onPressed}); |
| 516 } | 492 } |
| 517 '''); | 493 '''); |
| 518 addTestSource(''' | 494 addTestSource(''' |
| 519 import '/libA.dart'; | 495 import '/libA.dart'; |
| 520 | 496 |
| 521 class PageState { | 497 class PageState { |
| 522 void _incrementCounter() { } | 498 void _incrementCounter() { } |
| 523 build() => | 499 build() => |
| 524 new Button( | 500 new Button( |
| 525 onPressed: ^ | 501 onPressed: ^ |
| 526 ); | 502 ); |
| 527 } | 503 } |
| 528 '''); | 504 '''); |
| 529 await computeSuggestions(); | 505 await computeSuggestions(); |
| 530 | 506 |
| 531 expect(replacementOffset, completionOffset); | 507 expect(replacementOffset, completionOffset); |
| 532 expect(replacementLength, 0); | 508 expect(replacementLength, 0); |
| 533 | 509 |
| 534 assertSuggest('_incrementCounter', | 510 assertSuggest('_incrementCounter', |
| 535 csKind: CompletionSuggestionKind.IDENTIFIER); | 511 csKind: CompletionSuggestionKind.IDENTIFIER); |
| 536 } | 512 } |
| 537 | 513 |
| 538 test_ArgumentList_namedParam_tear_off_1() async { | 514 test_ArgumentList_namedParam_tear_off_1() async { |
| 539 addSource( | 515 addSource('/libA.dart', ''' |
| 540 '/libA.dart', | |
| 541 ''' | |
| 542 typedef void VoidCallback(); | 516 typedef void VoidCallback(); |
| 543 | 517 |
| 544 class Button { | 518 class Button { |
| 545 Button({VoidCallback onPressed, int x}); | 519 Button({VoidCallback onPressed, int x}); |
| 546 } | 520 } |
| 547 '''); | 521 '''); |
| 548 addTestSource(''' | 522 addTestSource(''' |
| 549 import '/libA.dart'; | 523 import '/libA.dart'; |
| 550 | 524 |
| 551 class PageState { | 525 class PageState { |
| 552 void _incrementCounter() { } | 526 void _incrementCounter() { } |
| 553 build() => | 527 build() => |
| 554 new Button( | 528 new Button( |
| 555 onPressed: ^ | 529 onPressed: ^ |
| 556 ); | 530 ); |
| 557 } | 531 } |
| 558 '''); | 532 '''); |
| 559 await computeSuggestions(); | 533 await computeSuggestions(); |
| 560 | 534 |
| 561 expect(replacementOffset, completionOffset); | 535 expect(replacementOffset, completionOffset); |
| 562 expect(replacementLength, 0); | 536 expect(replacementLength, 0); |
| 563 | 537 |
| 564 assertSuggest('_incrementCounter', | 538 assertSuggest('_incrementCounter', |
| 565 csKind: CompletionSuggestionKind.IDENTIFIER); | 539 csKind: CompletionSuggestionKind.IDENTIFIER); |
| 566 } | 540 } |
| 567 | 541 |
| 568 test_ArgumentList_namedParam_tear_off_2() async { | 542 test_ArgumentList_namedParam_tear_off_2() async { |
| 569 addSource( | 543 addSource('/libA.dart', ''' |
| 570 '/libA.dart', | |
| 571 ''' | |
| 572 typedef void VoidCallback(); | 544 typedef void VoidCallback(); |
| 573 | 545 |
| 574 class Button { | 546 class Button { |
| 575 Button({ int x, VoidCallback onPressed); | 547 Button({ int x, VoidCallback onPressed); |
| 576 } | 548 } |
| 577 '''); | 549 '''); |
| 578 addTestSource(''' | 550 addTestSource(''' |
| 579 import '/libA.dart'; | 551 import '/libA.dart'; |
| 580 | 552 |
| 581 class PageState { | 553 class PageState { |
| (...skipping 248 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 830 expect(replacementOffset, completionOffset); | 802 expect(replacementOffset, completionOffset); |
| 831 expect(replacementLength, 0); | 803 expect(replacementLength, 0); |
| 832 assertSuggestLocalVariable('a', 'int'); | 804 assertSuggestLocalVariable('a', 'int'); |
| 833 assertNotSuggested('Object'); | 805 assertNotSuggested('Object'); |
| 834 assertNotSuggested('b'); | 806 assertNotSuggested('b'); |
| 835 assertNotSuggested('=='); | 807 assertNotSuggested('=='); |
| 836 } | 808 } |
| 837 | 809 |
| 838 test_Block() async { | 810 test_Block() async { |
| 839 // Block BlockFunctionBody MethodDeclaration | 811 // Block BlockFunctionBody MethodDeclaration |
| 840 addSource( | 812 addSource('/testAB.dart', ''' |
| 841 '/testAB.dart', | |
| 842 ''' | |
| 843 export "dart:math" hide max; | 813 export "dart:math" hide max; |
| 844 class A {int x;} | 814 class A {int x;} |
| 845 @deprecated D1() {int x;} | 815 @deprecated D1() {int x;} |
| 846 class _B {boo() { partBoo() {}} }'''); | 816 class _B {boo() { partBoo() {}} }'''); |
| 847 addSource( | 817 addSource('/testCD.dart', ''' |
| 848 '/testCD.dart', | |
| 849 ''' | |
| 850 String T1; | 818 String T1; |
| 851 var _T2; | 819 var _T2; |
| 852 class C { } | 820 class C { } |
| 853 class D { }'''); | 821 class D { }'''); |
| 854 addSource( | 822 addSource('/testEEF.dart', ''' |
| 855 '/testEEF.dart', | |
| 856 ''' | |
| 857 class EE { } | 823 class EE { } |
| 858 class F { }'''); | 824 class F { }'''); |
| 859 addSource('/testG.dart', 'class G { }'); | 825 addSource('/testG.dart', 'class G { }'); |
| 860 addSource( | 826 addSource('/testH.dart', ''' |
| 861 '/testH.dart', | |
| 862 ''' | |
| 863 class H { } | 827 class H { } |
| 864 int T3; | 828 int T3; |
| 865 var _T4;'''); // not imported | 829 var _T4;'''); // not imported |
| 866 addTestSource(''' | 830 addTestSource(''' |
| 867 import "/testAB.dart"; | 831 import "/testAB.dart"; |
| 868 import "/testCD.dart" hide D; | 832 import "/testCD.dart" hide D; |
| 869 import "/testEEF.dart" show EE; | 833 import "/testEEF.dart" show EE; |
| 870 import "/testG.dart" as g; | 834 import "/testG.dart" as g; |
| 871 int T5; | 835 int T5; |
| 872 var _T6; | 836 var _T6; |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 936 assertSuggestSetter('blog', relevance: DART_RELEVANCE_LOCAL_ACCESSOR); | 900 assertSuggestSetter('blog', relevance: DART_RELEVANCE_LOCAL_ACCESSOR); |
| 937 // TODO (danrubel) suggest HtmlElement as low relevance | 901 // TODO (danrubel) suggest HtmlElement as low relevance |
| 938 assertNotSuggested('HtmlElement'); | 902 assertNotSuggested('HtmlElement'); |
| 939 assertNotSuggested('Uri'); | 903 assertNotSuggested('Uri'); |
| 940 assertNotSuggested('parseIPv6Address'); | 904 assertNotSuggested('parseIPv6Address'); |
| 941 assertNotSuggested('parseHex'); | 905 assertNotSuggested('parseHex'); |
| 942 } | 906 } |
| 943 | 907 |
| 944 test_Block_final() async { | 908 test_Block_final() async { |
| 945 // Block BlockFunctionBody MethodDeclaration | 909 // Block BlockFunctionBody MethodDeclaration |
| 946 addSource( | 910 addSource('/testAB.dart', ''' |
| 947 '/testAB.dart', | |
| 948 ''' | |
| 949 export "dart:math" hide max; | 911 export "dart:math" hide max; |
| 950 class A {int x;} | 912 class A {int x;} |
| 951 @deprecated D1() {int x;} | 913 @deprecated D1() {int x;} |
| 952 class _B {boo() { partBoo() {}} }'''); | 914 class _B {boo() { partBoo() {}} }'''); |
| 953 addSource( | 915 addSource('/testCD.dart', ''' |
| 954 '/testCD.dart', | |
| 955 ''' | |
| 956 String T1; | 916 String T1; |
| 957 var _T2; | 917 var _T2; |
| 958 class C { } | 918 class C { } |
| 959 class D { }'''); | 919 class D { }'''); |
| 960 addSource( | 920 addSource('/testEEF.dart', ''' |
| 961 '/testEEF.dart', | |
| 962 ''' | |
| 963 class EE { } | 921 class EE { } |
| 964 class F { }'''); | 922 class F { }'''); |
| 965 addSource('/testG.dart', 'class G { }'); | 923 addSource('/testG.dart', 'class G { }'); |
| 966 addSource( | 924 addSource('/testH.dart', ''' |
| 967 '/testH.dart', | |
| 968 ''' | |
| 969 class H { } | 925 class H { } |
| 970 int T3; | 926 int T3; |
| 971 var _T4;'''); // not imported | 927 var _T4;'''); // not imported |
| 972 addTestSource(''' | 928 addTestSource(''' |
| 973 import "/testAB.dart"; | 929 import "/testAB.dart"; |
| 974 import "/testCD.dart" hide D; | 930 import "/testCD.dart" hide D; |
| 975 import "/testEEF.dart" show EE; | 931 import "/testEEF.dart" show EE; |
| 976 import "/testG.dart" as g; | 932 import "/testG.dart" as g; |
| 977 int T5; | 933 int T5; |
| 978 var _T6; | 934 var _T6; |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1057 | 1013 |
| 1058 test_Block_final3() async { | 1014 test_Block_final3() async { |
| 1059 addTestSource('main() {final ^ v;}'); | 1015 addTestSource('main() {final ^ v;}'); |
| 1060 await computeSuggestions(); | 1016 await computeSuggestions(); |
| 1061 | 1017 |
| 1062 assertNotSuggested('String'); | 1018 assertNotSuggested('String'); |
| 1063 } | 1019 } |
| 1064 | 1020 |
| 1065 test_Block_final_final() async { | 1021 test_Block_final_final() async { |
| 1066 // Block BlockFunctionBody MethodDeclaration | 1022 // Block BlockFunctionBody MethodDeclaration |
| 1067 addSource( | 1023 addSource('/testAB.dart', ''' |
| 1068 '/testAB.dart', | |
| 1069 ''' | |
| 1070 export "dart:math" hide max; | 1024 export "dart:math" hide max; |
| 1071 class A {int x;} | 1025 class A {int x;} |
| 1072 @deprecated D1() {int x;} | 1026 @deprecated D1() {int x;} |
| 1073 class _B {boo() { partBoo() {}} }'''); | 1027 class _B {boo() { partBoo() {}} }'''); |
| 1074 addSource( | 1028 addSource('/testCD.dart', ''' |
| 1075 '/testCD.dart', | |
| 1076 ''' | |
| 1077 String T1; | 1029 String T1; |
| 1078 var _T2; | 1030 var _T2; |
| 1079 class C { } | 1031 class C { } |
| 1080 class D { }'''); | 1032 class D { }'''); |
| 1081 addSource( | 1033 addSource('/testEEF.dart', ''' |
| 1082 '/testEEF.dart', | |
| 1083 ''' | |
| 1084 class EE { } | 1034 class EE { } |
| 1085 class F { }'''); | 1035 class F { }'''); |
| 1086 addSource('/testG.dart', 'class G { }'); | 1036 addSource('/testG.dart', 'class G { }'); |
| 1087 addSource( | 1037 addSource('/testH.dart', ''' |
| 1088 '/testH.dart', | |
| 1089 ''' | |
| 1090 class H { } | 1038 class H { } |
| 1091 int T3; | 1039 int T3; |
| 1092 var _T4;'''); // not imported | 1040 var _T4;'''); // not imported |
| 1093 addTestSource(''' | 1041 addTestSource(''' |
| 1094 import "/testAB.dart"; | 1042 import "/testAB.dart"; |
| 1095 import "/testCD.dart" hide D; | 1043 import "/testCD.dart" hide D; |
| 1096 import "/testEEF.dart" show EE; | 1044 import "/testEEF.dart" show EE; |
| 1097 import "/testG.dart" as g; | 1045 import "/testG.dart" as g; |
| 1098 int T5; | 1046 int T5; |
| 1099 var _T6; | 1047 var _T6; |
| (...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1164 assertNotSuggested('blog'); | 1112 assertNotSuggested('blog'); |
| 1165 // TODO (danrubel) suggest HtmlElement as low relevance | 1113 // TODO (danrubel) suggest HtmlElement as low relevance |
| 1166 assertNotSuggested('HtmlElement'); | 1114 assertNotSuggested('HtmlElement'); |
| 1167 assertNotSuggested('Uri'); | 1115 assertNotSuggested('Uri'); |
| 1168 assertNotSuggested('parseIPv6Address'); | 1116 assertNotSuggested('parseIPv6Address'); |
| 1169 assertNotSuggested('parseHex'); | 1117 assertNotSuggested('parseHex'); |
| 1170 } | 1118 } |
| 1171 | 1119 |
| 1172 test_Block_final_var() async { | 1120 test_Block_final_var() async { |
| 1173 // Block BlockFunctionBody MethodDeclaration | 1121 // Block BlockFunctionBody MethodDeclaration |
| 1174 addSource( | 1122 addSource('/testAB.dart', ''' |
| 1175 '/testAB.dart', | |
| 1176 ''' | |
| 1177 export "dart:math" hide max; | 1123 export "dart:math" hide max; |
| 1178 class A {int x;} | 1124 class A {int x;} |
| 1179 @deprecated D1() {int x;} | 1125 @deprecated D1() {int x;} |
| 1180 class _B {boo() { partBoo() {}} }'''); | 1126 class _B {boo() { partBoo() {}} }'''); |
| 1181 addSource( | 1127 addSource('/testCD.dart', ''' |
| 1182 '/testCD.dart', | |
| 1183 ''' | |
| 1184 String T1; | 1128 String T1; |
| 1185 var _T2; | 1129 var _T2; |
| 1186 class C { } | 1130 class C { } |
| 1187 class D { }'''); | 1131 class D { }'''); |
| 1188 addSource( | 1132 addSource('/testEEF.dart', ''' |
| 1189 '/testEEF.dart', | |
| 1190 ''' | |
| 1191 class EE { } | 1133 class EE { } |
| 1192 class F { }'''); | 1134 class F { }'''); |
| 1193 addSource('/testG.dart', 'class G { }'); | 1135 addSource('/testG.dart', 'class G { }'); |
| 1194 addSource( | 1136 addSource('/testH.dart', ''' |
| 1195 '/testH.dart', | |
| 1196 ''' | |
| 1197 class H { } | 1137 class H { } |
| 1198 int T3; | 1138 int T3; |
| 1199 var _T4;'''); // not imported | 1139 var _T4;'''); // not imported |
| 1200 addTestSource(''' | 1140 addTestSource(''' |
| 1201 import "/testAB.dart"; | 1141 import "/testAB.dart"; |
| 1202 import "/testCD.dart" hide D; | 1142 import "/testCD.dart" hide D; |
| 1203 import "/testEEF.dart" show EE; | 1143 import "/testEEF.dart" show EE; |
| 1204 import "/testG.dart" as g; | 1144 import "/testG.dart" as g; |
| 1205 int T5; | 1145 int T5; |
| 1206 var _T6; | 1146 var _T6; |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1270 assertNotSuggested('clog'); | 1210 assertNotSuggested('clog'); |
| 1271 assertNotSuggested('blog'); | 1211 assertNotSuggested('blog'); |
| 1272 // TODO (danrubel) suggest HtmlElement as low relevance | 1212 // TODO (danrubel) suggest HtmlElement as low relevance |
| 1273 assertNotSuggested('HtmlElement'); | 1213 assertNotSuggested('HtmlElement'); |
| 1274 assertNotSuggested('Uri'); | 1214 assertNotSuggested('Uri'); |
| 1275 assertNotSuggested('parseIPv6Address'); | 1215 assertNotSuggested('parseIPv6Address'); |
| 1276 assertNotSuggested('parseHex'); | 1216 assertNotSuggested('parseHex'); |
| 1277 } | 1217 } |
| 1278 | 1218 |
| 1279 test_Block_identifier_partial() async { | 1219 test_Block_identifier_partial() async { |
| 1280 addSource( | 1220 addSource('/testAB.dart', ''' |
| 1281 '/testAB.dart', | |
| 1282 ''' | |
| 1283 export "dart:math" hide max; | 1221 export "dart:math" hide max; |
| 1284 class A {int x;} | 1222 class A {int x;} |
| 1285 @deprecated D1() {int x;} | 1223 @deprecated D1() {int x;} |
| 1286 class _B { }'''); | 1224 class _B { }'''); |
| 1287 addSource( | 1225 addSource('/testCD.dart', ''' |
| 1288 '/testCD.dart', | |
| 1289 ''' | |
| 1290 String T1; | 1226 String T1; |
| 1291 var _T2; | 1227 var _T2; |
| 1292 class C { } | 1228 class C { } |
| 1293 class D { }'''); | 1229 class D { }'''); |
| 1294 addSource( | 1230 addSource('/testEEF.dart', ''' |
| 1295 '/testEEF.dart', | |
| 1296 ''' | |
| 1297 class EE { } | 1231 class EE { } |
| 1298 class F { }'''); | 1232 class F { }'''); |
| 1299 addSource('/testG.dart', 'class G { }'); | 1233 addSource('/testG.dart', 'class G { }'); |
| 1300 addSource( | 1234 addSource('/testH.dart', ''' |
| 1301 '/testH.dart', | |
| 1302 ''' | |
| 1303 class H { } | 1235 class H { } |
| 1304 class D3 { } | 1236 class D3 { } |
| 1305 int T3; | 1237 int T3; |
| 1306 var _T4;'''); // not imported | 1238 var _T4;'''); // not imported |
| 1307 addTestSource(''' | 1239 addTestSource(''' |
| 1308 import "/testAB.dart"; | 1240 import "/testAB.dart"; |
| 1309 import "/testCD.dart" hide D; | 1241 import "/testCD.dart" hide D; |
| 1310 import "/testEEF.dart" show EE; | 1242 import "/testEEF.dart" show EE; |
| 1311 import "/testG.dart" as g; | 1243 import "/testG.dart" as g; |
| 1312 int T5; | 1244 int T5; |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1358 assertNotSuggested('_T4'); | 1290 assertNotSuggested('_T4'); |
| 1359 //assertSuggestTopLevelVar('T5', 'int', relevance: DART_RELEVANCE_LOCAL_TOP_
LEVEL_VARIABLE); | 1291 //assertSuggestTopLevelVar('T5', 'int', relevance: DART_RELEVANCE_LOCAL_TOP_
LEVEL_VARIABLE); |
| 1360 //assertSuggestTopLevelVar('_T6', null); | 1292 //assertSuggestTopLevelVar('_T6', null); |
| 1361 assertNotSuggested('=='); | 1293 assertNotSuggested('=='); |
| 1362 // TODO (danrubel) suggest HtmlElement as low relevance | 1294 // TODO (danrubel) suggest HtmlElement as low relevance |
| 1363 assertNotSuggested('HtmlElement'); | 1295 assertNotSuggested('HtmlElement'); |
| 1364 } | 1296 } |
| 1365 | 1297 |
| 1366 test_Block_inherited_imported() async { | 1298 test_Block_inherited_imported() async { |
| 1367 // Block BlockFunctionBody MethodDeclaration ClassDeclaration | 1299 // Block BlockFunctionBody MethodDeclaration ClassDeclaration |
| 1368 resolveSource( | 1300 resolveSource('/testB.dart', ''' |
| 1369 '/testB.dart', | |
| 1370 ''' | |
| 1371 lib B; | 1301 lib B; |
| 1372 class F { var f1; f2() { } get f3 => 0; set f4(fx) { } var _pf; } | 1302 class F { var f1; f2() { } get f3 => 0; set f4(fx) { } var _pf; } |
| 1373 class E extends F { var e1; e2() { } } | 1303 class E extends F { var e1; e2() { } } |
| 1374 class I { int i1; i2() { } } | 1304 class I { int i1; i2() { } } |
| 1375 class M { var m1; int m2() { } }'''); | 1305 class M { var m1; int m2() { } }'''); |
| 1376 addTestSource(''' | 1306 addTestSource(''' |
| 1377 import "/testB.dart"; | 1307 import "/testB.dart"; |
| 1378 class A extends E implements I with M {a() {^}}'''); | 1308 class A extends E implements I with M {a() {^}}'''); |
| 1379 await computeSuggestions(); | 1309 await computeSuggestions(); |
| 1380 | 1310 |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1414 assertNotSuggested('m1'); | 1344 assertNotSuggested('m1'); |
| 1415 assertNotSuggested('f3'); | 1345 assertNotSuggested('f3'); |
| 1416 assertNotSuggested('f4'); | 1346 assertNotSuggested('f4'); |
| 1417 assertNotSuggested('e2'); | 1347 assertNotSuggested('e2'); |
| 1418 assertNotSuggested('f2'); | 1348 assertNotSuggested('f2'); |
| 1419 assertNotSuggested('i2'); | 1349 assertNotSuggested('i2'); |
| 1420 assertNotSuggested('m2'); | 1350 assertNotSuggested('m2'); |
| 1421 } | 1351 } |
| 1422 | 1352 |
| 1423 test_Block_local_function() async { | 1353 test_Block_local_function() async { |
| 1424 addSource( | 1354 addSource('/testAB.dart', ''' |
| 1425 '/testAB.dart', | |
| 1426 ''' | |
| 1427 export "dart:math" hide max; | 1355 export "dart:math" hide max; |
| 1428 class A {int x;} | 1356 class A {int x;} |
| 1429 @deprecated D1() {int x;} | 1357 @deprecated D1() {int x;} |
| 1430 class _B {boo() { partBoo() {}} }'''); | 1358 class _B {boo() { partBoo() {}} }'''); |
| 1431 addSource( | 1359 addSource('/testCD.dart', ''' |
| 1432 '/testCD.dart', | |
| 1433 ''' | |
| 1434 String T1; | 1360 String T1; |
| 1435 var _T2; | 1361 var _T2; |
| 1436 class C { } | 1362 class C { } |
| 1437 class D { }'''); | 1363 class D { }'''); |
| 1438 addSource( | 1364 addSource('/testEEF.dart', ''' |
| 1439 '/testEEF.dart', | |
| 1440 ''' | |
| 1441 class EE { } | 1365 class EE { } |
| 1442 class F { }'''); | 1366 class F { }'''); |
| 1443 addSource('/testG.dart', 'class G { }'); | 1367 addSource('/testG.dart', 'class G { }'); |
| 1444 addSource( | 1368 addSource('/testH.dart', ''' |
| 1445 '/testH.dart', | |
| 1446 ''' | |
| 1447 class H { } | 1369 class H { } |
| 1448 int T3; | 1370 int T3; |
| 1449 var _T4;'''); // not imported | 1371 var _T4;'''); // not imported |
| 1450 addTestSource(''' | 1372 addTestSource(''' |
| 1451 import "/testAB.dart"; | 1373 import "/testAB.dart"; |
| 1452 import "/testCD.dart" hide D; | 1374 import "/testCD.dart" hide D; |
| 1453 import "/testEEF.dart" show EE; | 1375 import "/testEEF.dart" show EE; |
| 1454 import "/testG.dart" as g; | 1376 import "/testG.dart" as g; |
| 1455 int T5; | 1377 int T5; |
| 1456 var _T6; | 1378 var _T6; |
| (...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1490 expect(replacementOffset, completionOffset - 1); | 1412 expect(replacementOffset, completionOffset - 1); |
| 1491 expect(replacementLength, 1); | 1413 expect(replacementLength, 1); |
| 1492 assertNotSuggested('Foo'); | 1414 assertNotSuggested('Foo'); |
| 1493 // TODO(danrubel) implement | 1415 // TODO(danrubel) implement |
| 1494 assertNotSuggested('Foo2'); | 1416 assertNotSuggested('Foo2'); |
| 1495 assertNotSuggested('Future'); | 1417 assertNotSuggested('Future'); |
| 1496 } | 1418 } |
| 1497 | 1419 |
| 1498 test_CascadeExpression_selector1() async { | 1420 test_CascadeExpression_selector1() async { |
| 1499 // PropertyAccess CascadeExpression ExpressionStatement Block | 1421 // PropertyAccess CascadeExpression ExpressionStatement Block |
| 1500 addSource( | 1422 addSource('/testB.dart', ''' |
| 1501 '/testB.dart', | |
| 1502 ''' | |
| 1503 class B { }'''); | 1423 class B { }'''); |
| 1504 addTestSource(''' | 1424 addTestSource(''' |
| 1505 import "/testB.dart"; | 1425 import "/testB.dart"; |
| 1506 class A {var b; X _c;} | 1426 class A {var b; X _c;} |
| 1507 class X{} | 1427 class X{} |
| 1508 // looks like a cascade to the parser | 1428 // looks like a cascade to the parser |
| 1509 // but the user is trying to get completions for a non-cascade | 1429 // but the user is trying to get completions for a non-cascade |
| 1510 main() {A a; a.^.z}'''); | 1430 main() {A a; a.^.z}'''); |
| 1511 await computeSuggestions(); | 1431 await computeSuggestions(); |
| 1512 | 1432 |
| 1513 expect(replacementOffset, completionOffset); | 1433 expect(replacementOffset, completionOffset); |
| 1514 expect(replacementLength, 0); | 1434 expect(replacementLength, 0); |
| 1515 assertNotSuggested('b'); | 1435 assertNotSuggested('b'); |
| 1516 assertNotSuggested('_c'); | 1436 assertNotSuggested('_c'); |
| 1517 assertNotSuggested('Object'); | 1437 assertNotSuggested('Object'); |
| 1518 assertNotSuggested('A'); | 1438 assertNotSuggested('A'); |
| 1519 assertNotSuggested('B'); | 1439 assertNotSuggested('B'); |
| 1520 assertNotSuggested('X'); | 1440 assertNotSuggested('X'); |
| 1521 assertNotSuggested('z'); | 1441 assertNotSuggested('z'); |
| 1522 assertNotSuggested('=='); | 1442 assertNotSuggested('=='); |
| 1523 } | 1443 } |
| 1524 | 1444 |
| 1525 test_CascadeExpression_selector2() async { | 1445 test_CascadeExpression_selector2() async { |
| 1526 // SimpleIdentifier PropertyAccess CascadeExpression ExpressionStatement | 1446 // SimpleIdentifier PropertyAccess CascadeExpression ExpressionStatement |
| 1527 addSource( | 1447 addSource('/testB.dart', ''' |
| 1528 '/testB.dart', | |
| 1529 ''' | |
| 1530 class B { }'''); | 1448 class B { }'''); |
| 1531 addTestSource(''' | 1449 addTestSource(''' |
| 1532 import "/testB.dart"; | 1450 import "/testB.dart"; |
| 1533 class A {var b; X _c;} | 1451 class A {var b; X _c;} |
| 1534 class X{} | 1452 class X{} |
| 1535 main() {A a; a..^z}'''); | 1453 main() {A a; a..^z}'''); |
| 1536 await computeSuggestions(); | 1454 await computeSuggestions(); |
| 1537 | 1455 |
| 1538 expect(replacementOffset, completionOffset); | 1456 expect(replacementOffset, completionOffset); |
| 1539 expect(replacementLength, 1); | 1457 expect(replacementLength, 1); |
| 1540 assertNotSuggested('b'); | 1458 assertNotSuggested('b'); |
| 1541 assertNotSuggested('_c'); | 1459 assertNotSuggested('_c'); |
| 1542 assertNotSuggested('Object'); | 1460 assertNotSuggested('Object'); |
| 1543 assertNotSuggested('A'); | 1461 assertNotSuggested('A'); |
| 1544 assertNotSuggested('B'); | 1462 assertNotSuggested('B'); |
| 1545 assertNotSuggested('X'); | 1463 assertNotSuggested('X'); |
| 1546 assertNotSuggested('z'); | 1464 assertNotSuggested('z'); |
| 1547 assertNotSuggested('=='); | 1465 assertNotSuggested('=='); |
| 1548 } | 1466 } |
| 1549 | 1467 |
| 1550 test_CascadeExpression_selector2_withTrailingReturn() async { | 1468 test_CascadeExpression_selector2_withTrailingReturn() async { |
| 1551 // PropertyAccess CascadeExpression ExpressionStatement Block | 1469 // PropertyAccess CascadeExpression ExpressionStatement Block |
| 1552 addSource( | 1470 addSource('/testB.dart', ''' |
| 1553 '/testB.dart', | |
| 1554 ''' | |
| 1555 class B { }'''); | 1471 class B { }'''); |
| 1556 addTestSource(''' | 1472 addTestSource(''' |
| 1557 import "/testB.dart"; | 1473 import "/testB.dart"; |
| 1558 class A {var b; X _c;} | 1474 class A {var b; X _c;} |
| 1559 class X{} | 1475 class X{} |
| 1560 main() {A a; a..^ return}'''); | 1476 main() {A a; a..^ return}'''); |
| 1561 await computeSuggestions(); | 1477 await computeSuggestions(); |
| 1562 | 1478 |
| 1563 expect(replacementOffset, completionOffset); | 1479 expect(replacementOffset, completionOffset); |
| 1564 expect(replacementLength, 0); | 1480 expect(replacementLength, 0); |
| (...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1639 expect(replacementLength, 0); | 1555 expect(replacementLength, 0); |
| 1640 assertSuggestParameter('e', null); | 1556 assertSuggestParameter('e', null); |
| 1641 assertSuggestParameter('s', 'StackTrace'); | 1557 assertSuggestParameter('s', 'StackTrace'); |
| 1642 assertSuggestMethod('a', 'A', null, relevance: DART_RELEVANCE_LOCAL_METHOD); | 1558 assertSuggestMethod('a', 'A', null, relevance: DART_RELEVANCE_LOCAL_METHOD); |
| 1643 assertNotSuggested('Object'); | 1559 assertNotSuggested('Object'); |
| 1644 assertNotSuggested('x'); | 1560 assertNotSuggested('x'); |
| 1645 } | 1561 } |
| 1646 | 1562 |
| 1647 test_ClassDeclaration_body() async { | 1563 test_ClassDeclaration_body() async { |
| 1648 // ClassDeclaration CompilationUnit | 1564 // ClassDeclaration CompilationUnit |
| 1649 addSource( | 1565 addSource('/testB.dart', ''' |
| 1650 '/testB.dart', | |
| 1651 ''' | |
| 1652 class B { }'''); | 1566 class B { }'''); |
| 1653 addTestSource(''' | 1567 addTestSource(''' |
| 1654 import "testB.dart" as x; | 1568 import "testB.dart" as x; |
| 1655 @deprecated class A {^} | 1569 @deprecated class A {^} |
| 1656 class _B {} | 1570 class _B {} |
| 1657 A T;'''); | 1571 A T;'''); |
| 1658 await computeSuggestions(); | 1572 await computeSuggestions(); |
| 1659 | 1573 |
| 1660 expect(replacementOffset, completionOffset); | 1574 expect(replacementOffset, completionOffset); |
| 1661 expect(replacementLength, 0); | 1575 expect(replacementLength, 0); |
| 1662 CompletionSuggestion suggestionA = assertSuggestClass('A', | 1576 CompletionSuggestion suggestionA = assertSuggestClass('A', |
| 1663 relevance: DART_RELEVANCE_LOW, isDeprecated: true); | 1577 relevance: DART_RELEVANCE_LOW, isDeprecated: true); |
| 1664 if (suggestionA != null) { | 1578 if (suggestionA != null) { |
| 1665 expect(suggestionA.element.isDeprecated, isTrue); | 1579 expect(suggestionA.element.isDeprecated, isTrue); |
| 1666 expect(suggestionA.element.isPrivate, isFalse); | 1580 expect(suggestionA.element.isPrivate, isFalse); |
| 1667 } | 1581 } |
| 1668 CompletionSuggestion suggestionB = assertSuggestClass('_B'); | 1582 CompletionSuggestion suggestionB = assertSuggestClass('_B'); |
| 1669 if (suggestionB != null) { | 1583 if (suggestionB != null) { |
| 1670 expect(suggestionB.element.isDeprecated, isFalse); | 1584 expect(suggestionB.element.isDeprecated, isFalse); |
| 1671 expect(suggestionB.element.isPrivate, isTrue); | 1585 expect(suggestionB.element.isPrivate, isTrue); |
| 1672 } | 1586 } |
| 1673 assertNotSuggested('Object'); | 1587 assertNotSuggested('Object'); |
| 1674 assertNotSuggested('T'); | 1588 assertNotSuggested('T'); |
| 1675 // Suggested by LibraryPrefixContributor | 1589 // Suggested by LibraryPrefixContributor |
| 1676 assertNotSuggested('x'); | 1590 assertNotSuggested('x'); |
| 1677 } | 1591 } |
| 1678 | 1592 |
| 1679 test_ClassDeclaration_body_final() async { | 1593 test_ClassDeclaration_body_final() async { |
| 1680 // ClassDeclaration CompilationUnit | 1594 // ClassDeclaration CompilationUnit |
| 1681 addSource( | 1595 addSource('/testB.dart', ''' |
| 1682 '/testB.dart', | |
| 1683 ''' | |
| 1684 class B { }'''); | 1596 class B { }'''); |
| 1685 addTestSource(''' | 1597 addTestSource(''' |
| 1686 import "testB.dart" as x; | 1598 import "testB.dart" as x; |
| 1687 class A {final ^} | 1599 class A {final ^} |
| 1688 class _B {} | 1600 class _B {} |
| 1689 A T;'''); | 1601 A T;'''); |
| 1690 await computeSuggestions(); | 1602 await computeSuggestions(); |
| 1691 | 1603 |
| 1692 expect(replacementOffset, completionOffset); | 1604 expect(replacementOffset, completionOffset); |
| 1693 expect(replacementLength, 0); | 1605 expect(replacementLength, 0); |
| 1694 assertSuggestClass('A'); | 1606 assertSuggestClass('A'); |
| 1695 assertSuggestClass('_B'); | 1607 assertSuggestClass('_B'); |
| 1696 assertNotSuggested('Object'); | 1608 assertNotSuggested('Object'); |
| 1697 assertNotSuggested('T'); | 1609 assertNotSuggested('T'); |
| 1698 // Suggested by LibraryPrefixContributor | 1610 // Suggested by LibraryPrefixContributor |
| 1699 assertNotSuggested('x'); | 1611 assertNotSuggested('x'); |
| 1700 } | 1612 } |
| 1701 | 1613 |
| 1702 test_ClassDeclaration_body_final_field() async { | 1614 test_ClassDeclaration_body_final_field() async { |
| 1703 // ClassDeclaration CompilationUnit | 1615 // ClassDeclaration CompilationUnit |
| 1704 addSource( | 1616 addSource('/testB.dart', ''' |
| 1705 '/testB.dart', | |
| 1706 ''' | |
| 1707 class B { }'''); | 1617 class B { }'''); |
| 1708 addTestSource(''' | 1618 addTestSource(''' |
| 1709 import "testB.dart" as x; | 1619 import "testB.dart" as x; |
| 1710 class A {final ^ A(){}} | 1620 class A {final ^ A(){}} |
| 1711 class _B {} | 1621 class _B {} |
| 1712 A T;'''); | 1622 A T;'''); |
| 1713 await computeSuggestions(); | 1623 await computeSuggestions(); |
| 1714 | 1624 |
| 1715 expect(replacementOffset, completionOffset); | 1625 expect(replacementOffset, completionOffset); |
| 1716 expect(replacementLength, 0); | 1626 expect(replacementLength, 0); |
| 1717 assertSuggestClass('A'); | 1627 assertSuggestClass('A'); |
| 1718 assertSuggestClass('_B'); | 1628 assertSuggestClass('_B'); |
| 1719 assertNotSuggested('String'); | 1629 assertNotSuggested('String'); |
| 1720 assertNotSuggested('T'); | 1630 assertNotSuggested('T'); |
| 1721 // Suggested by LibraryPrefixContributor | 1631 // Suggested by LibraryPrefixContributor |
| 1722 assertNotSuggested('x'); | 1632 assertNotSuggested('x'); |
| 1723 } | 1633 } |
| 1724 | 1634 |
| 1725 test_ClassDeclaration_body_final_field2() async { | 1635 test_ClassDeclaration_body_final_field2() async { |
| 1726 // ClassDeclaration CompilationUnit | 1636 // ClassDeclaration CompilationUnit |
| 1727 addSource( | 1637 addSource('/testB.dart', ''' |
| 1728 '/testB.dart', | |
| 1729 ''' | |
| 1730 class B { }'''); | 1638 class B { }'''); |
| 1731 addTestSource(''' | 1639 addTestSource(''' |
| 1732 import "testB.dart" as Soo; | 1640 import "testB.dart" as Soo; |
| 1733 class A {final S^ A();} | 1641 class A {final S^ A();} |
| 1734 class _B {} | 1642 class _B {} |
| 1735 A Sew;'''); | 1643 A Sew;'''); |
| 1736 await computeSuggestions(); | 1644 await computeSuggestions(); |
| 1737 | 1645 |
| 1738 expect(replacementOffset, completionOffset - 1); | 1646 expect(replacementOffset, completionOffset - 1); |
| 1739 expect(replacementLength, 1); | 1647 expect(replacementLength, 1); |
| 1740 assertSuggestClass('A'); | 1648 assertSuggestClass('A'); |
| 1741 assertSuggestClass('_B'); | 1649 assertSuggestClass('_B'); |
| 1742 assertNotSuggested('String'); | 1650 assertNotSuggested('String'); |
| 1743 assertNotSuggested('Sew'); | 1651 assertNotSuggested('Sew'); |
| 1744 // Suggested by LibraryPrefixContributor | 1652 // Suggested by LibraryPrefixContributor |
| 1745 assertNotSuggested('Soo'); | 1653 assertNotSuggested('Soo'); |
| 1746 } | 1654 } |
| 1747 | 1655 |
| 1748 test_ClassDeclaration_body_final_final() async { | 1656 test_ClassDeclaration_body_final_final() async { |
| 1749 // ClassDeclaration CompilationUnit | 1657 // ClassDeclaration CompilationUnit |
| 1750 addSource( | 1658 addSource('/testB.dart', ''' |
| 1751 '/testB.dart', | |
| 1752 ''' | |
| 1753 class B { }'''); | 1659 class B { }'''); |
| 1754 addTestSource(''' | 1660 addTestSource(''' |
| 1755 import "testB.dart" as x; | 1661 import "testB.dart" as x; |
| 1756 class A {final ^ final foo;} | 1662 class A {final ^ final foo;} |
| 1757 class _B {} | 1663 class _B {} |
| 1758 A T;'''); | 1664 A T;'''); |
| 1759 await computeSuggestions(); | 1665 await computeSuggestions(); |
| 1760 | 1666 |
| 1761 expect(replacementOffset, completionOffset); | 1667 expect(replacementOffset, completionOffset); |
| 1762 expect(replacementLength, 0); | 1668 expect(replacementLength, 0); |
| 1763 assertSuggestClass('A'); | 1669 assertSuggestClass('A'); |
| 1764 assertSuggestClass('_B'); | 1670 assertSuggestClass('_B'); |
| 1765 assertNotSuggested('Object'); | 1671 assertNotSuggested('Object'); |
| 1766 assertNotSuggested('T'); | 1672 assertNotSuggested('T'); |
| 1767 // Suggested by LibraryPrefixContributor | 1673 // Suggested by LibraryPrefixContributor |
| 1768 assertNotSuggested('x'); | 1674 assertNotSuggested('x'); |
| 1769 } | 1675 } |
| 1770 | 1676 |
| 1771 test_ClassDeclaration_body_final_var() async { | 1677 test_ClassDeclaration_body_final_var() async { |
| 1772 // ClassDeclaration CompilationUnit | 1678 // ClassDeclaration CompilationUnit |
| 1773 addSource( | 1679 addSource('/testB.dart', ''' |
| 1774 '/testB.dart', | |
| 1775 ''' | |
| 1776 class B { }'''); | 1680 class B { }'''); |
| 1777 addTestSource(''' | 1681 addTestSource(''' |
| 1778 import "testB.dart" as x; | 1682 import "testB.dart" as x; |
| 1779 class A {final ^ var foo;} | 1683 class A {final ^ var foo;} |
| 1780 class _B {} | 1684 class _B {} |
| 1781 A T;'''); | 1685 A T;'''); |
| 1782 await computeSuggestions(); | 1686 await computeSuggestions(); |
| 1783 | 1687 |
| 1784 expect(replacementOffset, completionOffset); | 1688 expect(replacementOffset, completionOffset); |
| 1785 expect(replacementLength, 0); | 1689 expect(replacementLength, 0); |
| 1786 assertSuggestClass('A'); | 1690 assertSuggestClass('A'); |
| 1787 assertSuggestClass('_B'); | 1691 assertSuggestClass('_B'); |
| 1788 assertNotSuggested('Object'); | 1692 assertNotSuggested('Object'); |
| 1789 assertNotSuggested('T'); | 1693 assertNotSuggested('T'); |
| 1790 // Suggested by LibraryPrefixContributor | 1694 // Suggested by LibraryPrefixContributor |
| 1791 assertNotSuggested('x'); | 1695 assertNotSuggested('x'); |
| 1792 } | 1696 } |
| 1793 | 1697 |
| 1794 test_Combinator_hide() async { | 1698 test_Combinator_hide() async { |
| 1795 // SimpleIdentifier HideCombinator ImportDirective | 1699 // SimpleIdentifier HideCombinator ImportDirective |
| 1796 addSource( | 1700 addSource('/testAB.dart', ''' |
| 1797 '/testAB.dart', | |
| 1798 ''' | |
| 1799 library libAB; | 1701 library libAB; |
| 1800 part '/partAB.dart'; | 1702 part '/partAB.dart'; |
| 1801 class A { } | 1703 class A { } |
| 1802 class B { }'''); | 1704 class B { }'''); |
| 1803 addSource( | 1705 addSource('/partAB.dart', ''' |
| 1804 '/partAB.dart', | |
| 1805 ''' | |
| 1806 part of libAB; | 1706 part of libAB; |
| 1807 var T1; | 1707 var T1; |
| 1808 PB F1() => new PB(); | 1708 PB F1() => new PB(); |
| 1809 class PB { }'''); | 1709 class PB { }'''); |
| 1810 addSource( | 1710 addSource('/testCD.dart', ''' |
| 1811 '/testCD.dart', | |
| 1812 ''' | |
| 1813 class C { } | 1711 class C { } |
| 1814 class D { }'''); | 1712 class D { }'''); |
| 1815 addTestSource(''' | 1713 addTestSource(''' |
| 1816 import "/testAB.dart" hide ^; | 1714 import "/testAB.dart" hide ^; |
| 1817 import "/testCD.dart"; | 1715 import "/testCD.dart"; |
| 1818 class X {}'''); | 1716 class X {}'''); |
| 1819 await computeSuggestions(); | 1717 await computeSuggestions(); |
| 1820 | 1718 |
| 1821 assertNoSuggestions(); | 1719 assertNoSuggestions(); |
| 1822 } | 1720 } |
| 1823 | 1721 |
| 1824 test_Combinator_show() async { | 1722 test_Combinator_show() async { |
| 1825 // SimpleIdentifier HideCombinator ImportDirective | 1723 // SimpleIdentifier HideCombinator ImportDirective |
| 1826 addSource( | 1724 addSource('/testAB.dart', ''' |
| 1827 '/testAB.dart', | |
| 1828 ''' | |
| 1829 library libAB; | 1725 library libAB; |
| 1830 part '/partAB.dart'; | 1726 part '/partAB.dart'; |
| 1831 class A { } | 1727 class A { } |
| 1832 class B { }'''); | 1728 class B { }'''); |
| 1833 addSource( | 1729 addSource('/partAB.dart', ''' |
| 1834 '/partAB.dart', | |
| 1835 ''' | |
| 1836 part of libAB; | 1730 part of libAB; |
| 1837 var T1; | 1731 var T1; |
| 1838 PB F1() => new PB(); | 1732 PB F1() => new PB(); |
| 1839 typedef PB2 F2(int blat); | 1733 typedef PB2 F2(int blat); |
| 1840 class Clz = Object with Object; | 1734 class Clz = Object with Object; |
| 1841 class PB { }'''); | 1735 class PB { }'''); |
| 1842 addSource( | 1736 addSource('/testCD.dart', ''' |
| 1843 '/testCD.dart', | |
| 1844 ''' | |
| 1845 class C { } | 1737 class C { } |
| 1846 class D { }'''); | 1738 class D { }'''); |
| 1847 addTestSource(''' | 1739 addTestSource(''' |
| 1848 import "/testAB.dart" show ^; | 1740 import "/testAB.dart" show ^; |
| 1849 import "/testCD.dart"; | 1741 import "/testCD.dart"; |
| 1850 class X {}'''); | 1742 class X {}'''); |
| 1851 await computeSuggestions(); | 1743 await computeSuggestions(); |
| 1852 | 1744 |
| 1853 assertNoSuggestions(); | 1745 assertNoSuggestions(); |
| 1854 } | 1746 } |
| 1855 | 1747 |
| 1856 test_ConditionalExpression_elseExpression() async { | 1748 test_ConditionalExpression_elseExpression() async { |
| 1857 // SimpleIdentifier ConditionalExpression ReturnStatement | 1749 // SimpleIdentifier ConditionalExpression ReturnStatement |
| 1858 addSource( | 1750 addSource('/testA.dart', ''' |
| 1859 '/testA.dart', | |
| 1860 ''' | |
| 1861 int T1; | 1751 int T1; |
| 1862 F1() { } | 1752 F1() { } |
| 1863 class A {int x;}'''); | 1753 class A {int x;}'''); |
| 1864 addTestSource(''' | 1754 addTestSource(''' |
| 1865 import "/testA.dart"; | 1755 import "/testA.dart"; |
| 1866 int T2; | 1756 int T2; |
| 1867 F2() { } | 1757 F2() { } |
| 1868 class B {int x;} | 1758 class B {int x;} |
| 1869 class C {foo(){var f; {var x;} return a ? T1 : T^}}'''); | 1759 class C {foo(){var f; {var x;} return a ? T1 : T^}}'''); |
| 1870 await computeSuggestions(); | 1760 await computeSuggestions(); |
| 1871 | 1761 |
| 1872 // top level results are partially filtered based on first char | 1762 // top level results are partially filtered based on first char |
| 1873 assertSuggestTopLevelVar('T2', 'int', | 1763 assertSuggestTopLevelVar('T2', 'int', |
| 1874 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); | 1764 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); |
| 1875 // TODO (danrubel) getter is being suggested instead of top level var | 1765 // TODO (danrubel) getter is being suggested instead of top level var |
| 1876 //assertNotSuggested('T1'); | 1766 //assertNotSuggested('T1'); |
| 1877 } | 1767 } |
| 1878 | 1768 |
| 1879 test_ConditionalExpression_elseExpression_empty() async { | 1769 test_ConditionalExpression_elseExpression_empty() async { |
| 1880 // SimpleIdentifier ConditionalExpression ReturnStatement | 1770 // SimpleIdentifier ConditionalExpression ReturnStatement |
| 1881 addSource( | 1771 addSource('/testA.dart', ''' |
| 1882 '/testA.dart', | |
| 1883 ''' | |
| 1884 int T1; | 1772 int T1; |
| 1885 F1() { } | 1773 F1() { } |
| 1886 class A {int x;}'''); | 1774 class A {int x;}'''); |
| 1887 addTestSource(''' | 1775 addTestSource(''' |
| 1888 import "/testA.dart"; | 1776 import "/testA.dart"; |
| 1889 int T2; | 1777 int T2; |
| 1890 F2() { } | 1778 F2() { } |
| 1891 class B {int x;} | 1779 class B {int x;} |
| 1892 class C {foo(){var f; {var x;} return a ? T1 : ^}}'''); | 1780 class C {foo(){var f; {var x;} return a ? T1 : ^}}'''); |
| 1893 await computeSuggestions(); | 1781 await computeSuggestions(); |
| 1894 | 1782 |
| 1895 assertNotSuggested('x'); | 1783 assertNotSuggested('x'); |
| 1896 assertSuggestLocalVariable('f', null); | 1784 assertSuggestLocalVariable('f', null); |
| 1897 assertSuggestMethod('foo', 'C', null, | 1785 assertSuggestMethod('foo', 'C', null, |
| 1898 relevance: DART_RELEVANCE_LOCAL_METHOD); | 1786 relevance: DART_RELEVANCE_LOCAL_METHOD); |
| 1899 assertSuggestClass('C'); | 1787 assertSuggestClass('C'); |
| 1900 assertSuggestFunction('F2', null, relevance: DART_RELEVANCE_LOCAL_FUNCTION); | 1788 assertSuggestFunction('F2', null, relevance: DART_RELEVANCE_LOCAL_FUNCTION); |
| 1901 assertSuggestTopLevelVar('T2', 'int', | 1789 assertSuggestTopLevelVar('T2', 'int', |
| 1902 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); | 1790 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); |
| 1903 assertNotSuggested('A'); | 1791 assertNotSuggested('A'); |
| 1904 assertNotSuggested('F1'); | 1792 assertNotSuggested('F1'); |
| 1905 // TODO (danrubel) getter is being suggested instead of top level var | 1793 // TODO (danrubel) getter is being suggested instead of top level var |
| 1906 //assertNotSuggested('T1'); | 1794 //assertNotSuggested('T1'); |
| 1907 } | 1795 } |
| 1908 | 1796 |
| 1909 test_ConditionalExpression_partial_thenExpression() async { | 1797 test_ConditionalExpression_partial_thenExpression() async { |
| 1910 // SimpleIdentifier ConditionalExpression ReturnStatement | 1798 // SimpleIdentifier ConditionalExpression ReturnStatement |
| 1911 addSource( | 1799 addSource('/testA.dart', ''' |
| 1912 '/testA.dart', | |
| 1913 ''' | |
| 1914 int T1; | 1800 int T1; |
| 1915 F1() { } | 1801 F1() { } |
| 1916 class A {int x;}'''); | 1802 class A {int x;}'''); |
| 1917 addTestSource(''' | 1803 addTestSource(''' |
| 1918 import "/testA.dart"; | 1804 import "/testA.dart"; |
| 1919 int T2; | 1805 int T2; |
| 1920 F2() { } | 1806 F2() { } |
| 1921 class B {int x;} | 1807 class B {int x;} |
| 1922 class C {foo(){var f; {var x;} return a ? T^}}'''); | 1808 class C {foo(){var f; {var x;} return a ? T^}}'''); |
| 1923 await computeSuggestions(); | 1809 await computeSuggestions(); |
| 1924 | 1810 |
| 1925 // top level results are partially filtered based on first char | 1811 // top level results are partially filtered based on first char |
| 1926 assertSuggestTopLevelVar('T2', 'int', | 1812 assertSuggestTopLevelVar('T2', 'int', |
| 1927 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); | 1813 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); |
| 1928 // TODO (danrubel) getter is being suggested instead of top level var | 1814 // TODO (danrubel) getter is being suggested instead of top level var |
| 1929 //assertNotSuggested('T1'); | 1815 //assertNotSuggested('T1'); |
| 1930 } | 1816 } |
| 1931 | 1817 |
| 1932 test_ConditionalExpression_partial_thenExpression_empty() async { | 1818 test_ConditionalExpression_partial_thenExpression_empty() async { |
| 1933 // SimpleIdentifier ConditionalExpression ReturnStatement | 1819 // SimpleIdentifier ConditionalExpression ReturnStatement |
| 1934 addSource( | 1820 addSource('/testA.dart', ''' |
| 1935 '/testA.dart', | |
| 1936 ''' | |
| 1937 int T1; | 1821 int T1; |
| 1938 F1() { } | 1822 F1() { } |
| 1939 class A {int x;}'''); | 1823 class A {int x;}'''); |
| 1940 addTestSource(''' | 1824 addTestSource(''' |
| 1941 import "/testA.dart"; | 1825 import "/testA.dart"; |
| 1942 int T2; | 1826 int T2; |
| 1943 F2() { } | 1827 F2() { } |
| 1944 class B {int x;} | 1828 class B {int x;} |
| 1945 class C {foo(){var f; {var x;} return a ? ^}}'''); | 1829 class C {foo(){var f; {var x;} return a ? ^}}'''); |
| 1946 await computeSuggestions(); | 1830 await computeSuggestions(); |
| 1947 | 1831 |
| 1948 assertNotSuggested('x'); | 1832 assertNotSuggested('x'); |
| 1949 assertSuggestLocalVariable('f', null); | 1833 assertSuggestLocalVariable('f', null); |
| 1950 assertSuggestMethod('foo', 'C', null, | 1834 assertSuggestMethod('foo', 'C', null, |
| 1951 relevance: DART_RELEVANCE_LOCAL_METHOD); | 1835 relevance: DART_RELEVANCE_LOCAL_METHOD); |
| 1952 assertSuggestClass('C'); | 1836 assertSuggestClass('C'); |
| 1953 assertSuggestFunction('F2', null, relevance: DART_RELEVANCE_LOCAL_FUNCTION); | 1837 assertSuggestFunction('F2', null, relevance: DART_RELEVANCE_LOCAL_FUNCTION); |
| 1954 assertSuggestTopLevelVar('T2', 'int', | 1838 assertSuggestTopLevelVar('T2', 'int', |
| 1955 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); | 1839 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); |
| 1956 assertNotSuggested('A'); | 1840 assertNotSuggested('A'); |
| 1957 assertNotSuggested('F1'); | 1841 assertNotSuggested('F1'); |
| 1958 // TODO (danrubel) getter is being suggested instead of top level var | 1842 // TODO (danrubel) getter is being suggested instead of top level var |
| 1959 //assertNotSuggested('T1'); | 1843 //assertNotSuggested('T1'); |
| 1960 } | 1844 } |
| 1961 | 1845 |
| 1962 test_ConditionalExpression_thenExpression() async { | 1846 test_ConditionalExpression_thenExpression() async { |
| 1963 // SimpleIdentifier ConditionalExpression ReturnStatement | 1847 // SimpleIdentifier ConditionalExpression ReturnStatement |
| 1964 addSource( | 1848 addSource('/testA.dart', ''' |
| 1965 '/testA.dart', | |
| 1966 ''' | |
| 1967 int T1; | 1849 int T1; |
| 1968 F1() { } | 1850 F1() { } |
| 1969 class A {int x;}'''); | 1851 class A {int x;}'''); |
| 1970 addTestSource(''' | 1852 addTestSource(''' |
| 1971 import "/testA.dart"; | 1853 import "/testA.dart"; |
| 1972 int T2; | 1854 int T2; |
| 1973 F2() { } | 1855 F2() { } |
| 1974 class B {int x;} | 1856 class B {int x;} |
| 1975 class C {foo(){var f; {var x;} return a ? T^ : c}}'''); | 1857 class C {foo(){var f; {var x;} return a ? T^ : c}}'''); |
| 1976 await computeSuggestions(); | 1858 await computeSuggestions(); |
| (...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2013 test_constructor_parameters_required() async { | 1895 test_constructor_parameters_required() async { |
| 2014 addTestSource('class A {A(x, int y) {^}}'); | 1896 addTestSource('class A {A(x, int y) {^}}'); |
| 2015 await computeSuggestions(); | 1897 await computeSuggestions(); |
| 2016 assertSuggestParameter('x', null); | 1898 assertSuggestParameter('x', null); |
| 2017 assertSuggestParameter('y', 'int'); | 1899 assertSuggestParameter('y', 'int'); |
| 2018 } | 1900 } |
| 2019 | 1901 |
| 2020 test_ConstructorName_importedClass() async { | 1902 test_ConstructorName_importedClass() async { |
| 2021 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName | 1903 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName |
| 2022 // InstanceCreationExpression | 1904 // InstanceCreationExpression |
| 2023 addSource( | 1905 addSource('/testB.dart', ''' |
| 2024 '/testB.dart', | |
| 2025 ''' | |
| 2026 lib B; | 1906 lib B; |
| 2027 int T1; | 1907 int T1; |
| 2028 F1() { } | 1908 F1() { } |
| 2029 class X {X.c(); X._d(); z() {}}'''); | 1909 class X {X.c(); X._d(); z() {}}'''); |
| 2030 addTestSource(''' | 1910 addTestSource(''' |
| 2031 import "/testB.dart"; | 1911 import "/testB.dart"; |
| 2032 var m; | 1912 var m; |
| 2033 main() {new X.^}'''); | 1913 main() {new X.^}'''); |
| 2034 await computeSuggestions(); | 1914 await computeSuggestions(); |
| 2035 | 1915 |
| 2036 expect(replacementOffset, completionOffset); | 1916 expect(replacementOffset, completionOffset); |
| 2037 expect(replacementLength, 0); | 1917 expect(replacementLength, 0); |
| 2038 // Suggested by NamedConstructorContributor | 1918 // Suggested by NamedConstructorContributor |
| 2039 assertNotSuggested('c'); | 1919 assertNotSuggested('c'); |
| 2040 assertNotSuggested('F1'); | 1920 assertNotSuggested('F1'); |
| 2041 assertNotSuggested('T1'); | 1921 assertNotSuggested('T1'); |
| 2042 assertNotSuggested('_d'); | 1922 assertNotSuggested('_d'); |
| 2043 assertNotSuggested('z'); | 1923 assertNotSuggested('z'); |
| 2044 assertNotSuggested('m'); | 1924 assertNotSuggested('m'); |
| 2045 } | 1925 } |
| 2046 | 1926 |
| 2047 test_ConstructorName_importedFactory() async { | 1927 test_ConstructorName_importedFactory() async { |
| 2048 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName | 1928 // SimpleIdentifier PrefixedIdentifier TypeName ConstructorName |
| 2049 // InstanceCreationExpression | 1929 // InstanceCreationExpression |
| 2050 addSource( | 1930 addSource('/testB.dart', ''' |
| 2051 '/testB.dart', | |
| 2052 ''' | |
| 2053 lib B; | 1931 lib B; |
| 2054 int T1; | 1932 int T1; |
| 2055 F1() { } | 1933 F1() { } |
| 2056 class X {factory X.c(); factory X._d(); z() {}}'''); | 1934 class X {factory X.c(); factory X._d(); z() {}}'''); |
| 2057 addTestSource(''' | 1935 addTestSource(''' |
| 2058 import "/testB.dart"; | 1936 import "/testB.dart"; |
| 2059 var m; | 1937 var m; |
| 2060 main() {new X.^}'''); | 1938 main() {new X.^}'''); |
| 2061 await computeSuggestions(); | 1939 await computeSuggestions(); |
| 2062 | 1940 |
| (...skipping 231 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2294 relevance: DART_RELEVANCE_DEFAULT + DART_RELEVANCE_INCREMENT); | 2172 relevance: DART_RELEVANCE_DEFAULT + DART_RELEVANCE_INCREMENT); |
| 2295 assertSuggestEnumConst('E.two', | 2173 assertSuggestEnumConst('E.two', |
| 2296 relevance: DART_RELEVANCE_DEFAULT + DART_RELEVANCE_INCREMENT); | 2174 relevance: DART_RELEVANCE_DEFAULT + DART_RELEVANCE_INCREMENT); |
| 2297 assertNotSuggested('a'); | 2175 assertNotSuggested('a'); |
| 2298 assertNotSuggested('F.three'); | 2176 assertNotSuggested('F.three'); |
| 2299 assertNotSuggested('F.four'); | 2177 assertNotSuggested('F.four'); |
| 2300 } | 2178 } |
| 2301 | 2179 |
| 2302 test_ExpressionStatement_identifier() async { | 2180 test_ExpressionStatement_identifier() async { |
| 2303 // SimpleIdentifier ExpressionStatement Block | 2181 // SimpleIdentifier ExpressionStatement Block |
| 2304 addSource( | 2182 addSource('/testA.dart', ''' |
| 2305 '/testA.dart', | |
| 2306 ''' | |
| 2307 _B F1() { } | 2183 _B F1() { } |
| 2308 class A {int x;} | 2184 class A {int x;} |
| 2309 class _B { }'''); | 2185 class _B { }'''); |
| 2310 addTestSource(''' | 2186 addTestSource(''' |
| 2311 import "/testA.dart"; | 2187 import "/testA.dart"; |
| 2312 typedef int F2(int blat); | 2188 typedef int F2(int blat); |
| 2313 class Clz = Object with Object; | 2189 class Clz = Object with Object; |
| 2314 class C {foo(){^} void bar() {}}'''); | 2190 class C {foo(){^} void bar() {}}'''); |
| 2315 await computeSuggestions(); | 2191 await computeSuggestions(); |
| 2316 | 2192 |
| 2317 expect(replacementOffset, completionOffset); | 2193 expect(replacementOffset, completionOffset); |
| 2318 expect(replacementLength, 0); | 2194 expect(replacementLength, 0); |
| 2319 assertNotSuggested('A'); | 2195 assertNotSuggested('A'); |
| 2320 assertNotSuggested('F1'); | 2196 assertNotSuggested('F1'); |
| 2321 assertSuggestClass('C'); | 2197 assertSuggestClass('C'); |
| 2322 assertSuggestMethod('foo', 'C', null, | 2198 assertSuggestMethod('foo', 'C', null, |
| 2323 relevance: DART_RELEVANCE_LOCAL_METHOD); | 2199 relevance: DART_RELEVANCE_LOCAL_METHOD); |
| 2324 assertSuggestMethod('bar', 'C', 'void', | 2200 assertSuggestMethod('bar', 'C', 'void', |
| 2325 relevance: DART_RELEVANCE_LOCAL_METHOD); | 2201 relevance: DART_RELEVANCE_LOCAL_METHOD); |
| 2326 assertSuggestFunctionTypeAlias('F2', 'int'); | 2202 assertSuggestFunctionTypeAlias('F2', 'int'); |
| 2327 assertSuggestClassTypeAlias('Clz'); | 2203 assertSuggestClassTypeAlias('Clz'); |
| 2328 assertSuggestClass('C'); | 2204 assertSuggestClass('C'); |
| 2329 assertNotSuggested('x'); | 2205 assertNotSuggested('x'); |
| 2330 assertNotSuggested('_B'); | 2206 assertNotSuggested('_B'); |
| 2331 } | 2207 } |
| 2332 | 2208 |
| 2333 test_ExpressionStatement_name() async { | 2209 test_ExpressionStatement_name() async { |
| 2334 // ExpressionStatement Block BlockFunctionBody MethodDeclaration | 2210 // ExpressionStatement Block BlockFunctionBody MethodDeclaration |
| 2335 addSource( | 2211 addSource('/testA.dart', ''' |
| 2336 '/testA.dart', | |
| 2337 ''' | |
| 2338 B T1; | 2212 B T1; |
| 2339 class B{}'''); | 2213 class B{}'''); |
| 2340 addTestSource(''' | 2214 addTestSource(''' |
| 2341 import "/testA.dart"; | 2215 import "/testA.dart"; |
| 2342 class C {a() {C ^}}'''); | 2216 class C {a() {C ^}}'''); |
| 2343 await computeSuggestions(); | 2217 await computeSuggestions(); |
| 2344 | 2218 |
| 2345 assertNoSuggestions(); | 2219 assertNoSuggestions(); |
| 2346 } | 2220 } |
| 2347 | 2221 |
| (...skipping 316 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2664 expect(suggestion.parameterNames[0], 'x'); | 2538 expect(suggestion.parameterNames[0], 'x'); |
| 2665 expect(suggestion.parameterTypes[0], 'dynamic'); | 2539 expect(suggestion.parameterTypes[0], 'dynamic'); |
| 2666 expect(suggestion.parameterNames[1], 'y'); | 2540 expect(suggestion.parameterNames[1], 'y'); |
| 2667 expect(suggestion.parameterTypes[1], 'int'); | 2541 expect(suggestion.parameterTypes[1], 'int'); |
| 2668 expect(suggestion.requiredParameterCount, 2); | 2542 expect(suggestion.requiredParameterCount, 2); |
| 2669 expect(suggestion.hasNamedParameters, false); | 2543 expect(suggestion.hasNamedParameters, false); |
| 2670 } | 2544 } |
| 2671 | 2545 |
| 2672 test_FunctionDeclaration_returnType_afterComment() async { | 2546 test_FunctionDeclaration_returnType_afterComment() async { |
| 2673 // ClassDeclaration CompilationUnit | 2547 // ClassDeclaration CompilationUnit |
| 2674 addSource( | 2548 addSource('/testA.dart', ''' |
| 2675 '/testA.dart', | |
| 2676 ''' | |
| 2677 int T1; | 2549 int T1; |
| 2678 F1() { } | 2550 F1() { } |
| 2679 typedef D1(); | 2551 typedef D1(); |
| 2680 class C1 {C1(this.x) { } int x;}'''); | 2552 class C1 {C1(this.x) { } int x;}'''); |
| 2681 addTestSource(''' | 2553 addTestSource(''' |
| 2682 import "/testA.dart"; | 2554 import "/testA.dart"; |
| 2683 int T2; | 2555 int T2; |
| 2684 F2() { } | 2556 F2() { } |
| 2685 typedef D2(); | 2557 typedef D2(); |
| 2686 class C2 { } | 2558 class C2 { } |
| 2687 /* */ ^ zoo(z) { } String name;'''); | 2559 /* */ ^ zoo(z) { } String name;'''); |
| 2688 await computeSuggestions(); | 2560 await computeSuggestions(); |
| 2689 | 2561 |
| 2690 expect(replacementOffset, completionOffset); | 2562 expect(replacementOffset, completionOffset); |
| 2691 expect(replacementLength, 0); | 2563 expect(replacementLength, 0); |
| 2692 assertNotSuggested('Object'); | 2564 assertNotSuggested('Object'); |
| 2693 assertNotSuggested('T1'); | 2565 assertNotSuggested('T1'); |
| 2694 assertNotSuggested('F1'); | 2566 assertNotSuggested('F1'); |
| 2695 assertNotSuggested('D1'); | 2567 assertNotSuggested('D1'); |
| 2696 assertNotSuggested('C1'); | 2568 assertNotSuggested('C1'); |
| 2697 assertNotSuggested('T2'); | 2569 assertNotSuggested('T2'); |
| 2698 assertNotSuggested('F2'); | 2570 assertNotSuggested('F2'); |
| 2699 assertSuggestFunctionTypeAlias('D2', null); | 2571 assertSuggestFunctionTypeAlias('D2', null); |
| 2700 assertSuggestClass('C2'); | 2572 assertSuggestClass('C2'); |
| 2701 assertNotSuggested('name'); | 2573 assertNotSuggested('name'); |
| 2702 } | 2574 } |
| 2703 | 2575 |
| 2704 test_FunctionDeclaration_returnType_afterComment2() async { | 2576 test_FunctionDeclaration_returnType_afterComment2() async { |
| 2705 // FunctionDeclaration ClassDeclaration CompilationUnit | 2577 // FunctionDeclaration ClassDeclaration CompilationUnit |
| 2706 addSource( | 2578 addSource('/testA.dart', ''' |
| 2707 '/testA.dart', | |
| 2708 ''' | |
| 2709 int T1; | 2579 int T1; |
| 2710 F1() { } | 2580 F1() { } |
| 2711 typedef D1(); | 2581 typedef D1(); |
| 2712 class C1 {C1(this.x) { } int x;}'''); | 2582 class C1 {C1(this.x) { } int x;}'''); |
| 2713 addTestSource(''' | 2583 addTestSource(''' |
| 2714 import "/testA.dart"; | 2584 import "/testA.dart"; |
| 2715 int T2; | 2585 int T2; |
| 2716 F2() { } | 2586 F2() { } |
| 2717 typedef D2(); | 2587 typedef D2(); |
| 2718 class C2 { } | 2588 class C2 { } |
| 2719 /** */ ^ zoo(z) { } String name;'''); | 2589 /** */ ^ zoo(z) { } String name;'''); |
| 2720 await computeSuggestions(); | 2590 await computeSuggestions(); |
| 2721 | 2591 |
| 2722 expect(replacementOffset, completionOffset); | 2592 expect(replacementOffset, completionOffset); |
| 2723 expect(replacementLength, 0); | 2593 expect(replacementLength, 0); |
| 2724 assertNotSuggested('Object'); | 2594 assertNotSuggested('Object'); |
| 2725 assertNotSuggested('T1'); | 2595 assertNotSuggested('T1'); |
| 2726 assertNotSuggested('F1'); | 2596 assertNotSuggested('F1'); |
| 2727 assertNotSuggested('D1'); | 2597 assertNotSuggested('D1'); |
| 2728 assertNotSuggested('C1'); | 2598 assertNotSuggested('C1'); |
| 2729 assertNotSuggested('T2'); | 2599 assertNotSuggested('T2'); |
| 2730 assertNotSuggested('F2'); | 2600 assertNotSuggested('F2'); |
| 2731 assertSuggestFunctionTypeAlias('D2', null); | 2601 assertSuggestFunctionTypeAlias('D2', null); |
| 2732 assertSuggestClass('C2'); | 2602 assertSuggestClass('C2'); |
| 2733 assertNotSuggested('name'); | 2603 assertNotSuggested('name'); |
| 2734 } | 2604 } |
| 2735 | 2605 |
| 2736 test_FunctionDeclaration_returnType_afterComment3() async { | 2606 test_FunctionDeclaration_returnType_afterComment3() async { |
| 2737 // FunctionDeclaration ClassDeclaration CompilationUnit | 2607 // FunctionDeclaration ClassDeclaration CompilationUnit |
| 2738 addSource( | 2608 addSource('/testA.dart', ''' |
| 2739 '/testA.dart', | |
| 2740 ''' | |
| 2741 int T1; | 2609 int T1; |
| 2742 F1() { } | 2610 F1() { } |
| 2743 typedef D1(); | 2611 typedef D1(); |
| 2744 class C1 {C1(this.x) { } int x;}'''); | 2612 class C1 {C1(this.x) { } int x;}'''); |
| 2745 addTestSource(''' | 2613 addTestSource(''' |
| 2746 import "/testA.dart"; | 2614 import "/testA.dart"; |
| 2747 int T2; | 2615 int T2; |
| 2748 F2() { } | 2616 F2() { } |
| 2749 typedef D2(); | 2617 typedef D2(); |
| 2750 /// some dartdoc | 2618 /// some dartdoc |
| (...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2894 /// The [m^] | 2762 /// The [m^] |
| 2895 main(aaa, bbb) {}'''); | 2763 main(aaa, bbb) {}'''); |
| 2896 await computeSuggestions(); | 2764 await computeSuggestions(); |
| 2897 assertSuggestFunction('main', null, | 2765 assertSuggestFunction('main', null, |
| 2898 kind: CompletionSuggestionKind.IDENTIFIER, | 2766 kind: CompletionSuggestionKind.IDENTIFIER, |
| 2899 relevance: DART_RELEVANCE_LOCAL_FUNCTION); | 2767 relevance: DART_RELEVANCE_LOCAL_FUNCTION); |
| 2900 } | 2768 } |
| 2901 | 2769 |
| 2902 test_IndexExpression() async { | 2770 test_IndexExpression() async { |
| 2903 // ExpressionStatement Block | 2771 // ExpressionStatement Block |
| 2904 addSource( | 2772 addSource('/testA.dart', ''' |
| 2905 '/testA.dart', | |
| 2906 ''' | |
| 2907 int T1; | 2773 int T1; |
| 2908 F1() { } | 2774 F1() { } |
| 2909 class A {int x;}'''); | 2775 class A {int x;}'''); |
| 2910 addTestSource(''' | 2776 addTestSource(''' |
| 2911 import "/testA.dart"; | 2777 import "/testA.dart"; |
| 2912 int T2; | 2778 int T2; |
| 2913 F2() { } | 2779 F2() { } |
| 2914 class B {int x;} | 2780 class B {int x;} |
| 2915 class C {foo(){var f; {var x;} f[^]}}'''); | 2781 class C {foo(){var f; {var x;} f[^]}}'''); |
| 2916 await computeSuggestions(); | 2782 await computeSuggestions(); |
| 2917 | 2783 |
| 2918 assertNotSuggested('x'); | 2784 assertNotSuggested('x'); |
| 2919 assertSuggestLocalVariable('f', null); | 2785 assertSuggestLocalVariable('f', null); |
| 2920 assertSuggestMethod('foo', 'C', null, | 2786 assertSuggestMethod('foo', 'C', null, |
| 2921 relevance: DART_RELEVANCE_LOCAL_METHOD); | 2787 relevance: DART_RELEVANCE_LOCAL_METHOD); |
| 2922 assertSuggestClass('C'); | 2788 assertSuggestClass('C'); |
| 2923 assertSuggestFunction('F2', null, relevance: DART_RELEVANCE_LOCAL_FUNCTION); | 2789 assertSuggestFunction('F2', null, relevance: DART_RELEVANCE_LOCAL_FUNCTION); |
| 2924 assertSuggestTopLevelVar('T2', 'int', | 2790 assertSuggestTopLevelVar('T2', 'int', |
| 2925 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); | 2791 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); |
| 2926 assertNotSuggested('A'); | 2792 assertNotSuggested('A'); |
| 2927 assertNotSuggested('F1'); | 2793 assertNotSuggested('F1'); |
| 2928 // TODO (danrubel) getter is being suggested instead of top level var | 2794 // TODO (danrubel) getter is being suggested instead of top level var |
| 2929 //assertNotSuggested('T1'); | 2795 //assertNotSuggested('T1'); |
| 2930 } | 2796 } |
| 2931 | 2797 |
| 2932 test_IndexExpression2() async { | 2798 test_IndexExpression2() async { |
| 2933 // SimpleIdentifier IndexExpression ExpressionStatement Block | 2799 // SimpleIdentifier IndexExpression ExpressionStatement Block |
| 2934 addSource( | 2800 addSource('/testA.dart', ''' |
| 2935 '/testA.dart', | |
| 2936 ''' | |
| 2937 int T1; | 2801 int T1; |
| 2938 F1() { } | 2802 F1() { } |
| 2939 class A {int x;}'''); | 2803 class A {int x;}'''); |
| 2940 addTestSource(''' | 2804 addTestSource(''' |
| 2941 import "/testA.dart"; | 2805 import "/testA.dart"; |
| 2942 int T2; | 2806 int T2; |
| 2943 F2() { } | 2807 F2() { } |
| 2944 class B {int x;} | 2808 class B {int x;} |
| 2945 class C {foo(){var f; {var x;} f[T^]}}'''); | 2809 class C {foo(){var f; {var x;} f[T^]}}'''); |
| 2946 await computeSuggestions(); | 2810 await computeSuggestions(); |
| (...skipping 11 matching lines...) Expand all Loading... |
| 2958 class B {B(this.x, [String boo]) { } int x;} | 2822 class B {B(this.x, [String boo]) { } int x;} |
| 2959 class C {C.bar({boo: 'hoo', int z: 0}) { } } | 2823 class C {C.bar({boo: 'hoo', int z: 0}) { } } |
| 2960 main() {new ^ String x = "hello";}'''); | 2824 main() {new ^ String x = "hello";}'''); |
| 2961 await computeSuggestions(); | 2825 await computeSuggestions(); |
| 2962 // Suggested by LocalConstructorContributor | 2826 // Suggested by LocalConstructorContributor |
| 2963 assertNoSuggestions(); | 2827 assertNoSuggestions(); |
| 2964 } | 2828 } |
| 2965 | 2829 |
| 2966 test_InstanceCreationExpression_imported() async { | 2830 test_InstanceCreationExpression_imported() async { |
| 2967 // SimpleIdentifier TypeName ConstructorName InstanceCreationExpression | 2831 // SimpleIdentifier TypeName ConstructorName InstanceCreationExpression |
| 2968 addSource( | 2832 addSource('/testA.dart', ''' |
| 2969 '/testA.dart', | |
| 2970 ''' | |
| 2971 int T1; | 2833 int T1; |
| 2972 F1() { } | 2834 F1() { } |
| 2973 class A {A(this.x) { } int x;}'''); | 2835 class A {A(this.x) { } int x;}'''); |
| 2974 addTestSource(''' | 2836 addTestSource(''' |
| 2975 import "/testA.dart"; | 2837 import "/testA.dart"; |
| 2976 import "dart:async"; | 2838 import "dart:async"; |
| 2977 int T2; | 2839 int T2; |
| 2978 F2() { } | 2840 F2() { } |
| 2979 class B {B(this.x, [String boo]) { } int x;} | 2841 class B {B(this.x, [String boo]) { } int x;} |
| 2980 class C {foo(){var f; {var x;} new ^}}'''); | 2842 class C {foo(){var f; {var x;} new ^}}'''); |
| (...skipping 23 matching lines...) Expand all Loading... |
| 3004 await computeSuggestions(); | 2866 await computeSuggestions(); |
| 3005 | 2867 |
| 3006 expect(replacementOffset, completionOffset - 1); | 2868 expect(replacementOffset, completionOffset - 1); |
| 3007 expect(replacementLength, 1); | 2869 expect(replacementLength, 1); |
| 3008 assertNotSuggested('Future'); | 2870 assertNotSuggested('Future'); |
| 3009 assertNotSuggested('Foo'); | 2871 assertNotSuggested('Foo'); |
| 3010 } | 2872 } |
| 3011 | 2873 |
| 3012 test_InterpolationExpression() async { | 2874 test_InterpolationExpression() async { |
| 3013 // SimpleIdentifier InterpolationExpression StringInterpolation | 2875 // SimpleIdentifier InterpolationExpression StringInterpolation |
| 3014 addSource( | 2876 addSource('/testA.dart', ''' |
| 3015 '/testA.dart', | |
| 3016 ''' | |
| 3017 int T1; | 2877 int T1; |
| 3018 F1() { } | 2878 F1() { } |
| 3019 typedef D1(); | 2879 typedef D1(); |
| 3020 class C1 {C1(this.x) { } int x;}'''); | 2880 class C1 {C1(this.x) { } int x;}'''); |
| 3021 addTestSource(''' | 2881 addTestSource(''' |
| 3022 import "/testA.dart"; | 2882 import "/testA.dart"; |
| 3023 int T2; | 2883 int T2; |
| 3024 F2() { } | 2884 F2() { } |
| 3025 typedef D2(); | 2885 typedef D2(); |
| 3026 class C2 { } | 2886 class C2 { } |
| (...skipping 10 matching lines...) Expand all Loading... |
| 3037 assertSuggestTopLevelVar('T2', 'int', | 2897 assertSuggestTopLevelVar('T2', 'int', |
| 3038 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); | 2898 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); |
| 3039 assertSuggestFunction('F2', null, relevance: DART_RELEVANCE_LOCAL_FUNCTION); | 2899 assertSuggestFunction('F2', null, relevance: DART_RELEVANCE_LOCAL_FUNCTION); |
| 3040 assertNotSuggested('D2'); | 2900 assertNotSuggested('D2'); |
| 3041 assertNotSuggested('C2'); | 2901 assertNotSuggested('C2'); |
| 3042 assertSuggestLocalVariable('name', 'String'); | 2902 assertSuggestLocalVariable('name', 'String'); |
| 3043 } | 2903 } |
| 3044 | 2904 |
| 3045 test_InterpolationExpression_block() async { | 2905 test_InterpolationExpression_block() async { |
| 3046 // SimpleIdentifier InterpolationExpression StringInterpolation | 2906 // SimpleIdentifier InterpolationExpression StringInterpolation |
| 3047 addSource( | 2907 addSource('/testA.dart', ''' |
| 3048 '/testA.dart', | |
| 3049 ''' | |
| 3050 int T1; | 2908 int T1; |
| 3051 F1() { } | 2909 F1() { } |
| 3052 typedef D1(); | 2910 typedef D1(); |
| 3053 class C1 {C1(this.x) { } int x;}'''); | 2911 class C1 {C1(this.x) { } int x;}'''); |
| 3054 addTestSource(''' | 2912 addTestSource(''' |
| 3055 import "/testA.dart"; | 2913 import "/testA.dart"; |
| 3056 int T2; | 2914 int T2; |
| 3057 F2() { } | 2915 F2() { } |
| 3058 typedef D2(); | 2916 typedef D2(); |
| 3059 class C2 { } | 2917 class C2 { } |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3112 await computeSuggestions(); | 2970 await computeSuggestions(); |
| 3113 | 2971 |
| 3114 assertSuggestLocalVariable('name', 'String'); | 2972 assertSuggestLocalVariable('name', 'String'); |
| 3115 // top level results are partially filtered | 2973 // top level results are partially filtered |
| 3116 //assertNotSuggested('Object'); | 2974 //assertNotSuggested('Object'); |
| 3117 assertNotSuggested('length'); | 2975 assertNotSuggested('length'); |
| 3118 } | 2976 } |
| 3119 | 2977 |
| 3120 test_IsExpression() async { | 2978 test_IsExpression() async { |
| 3121 // SimpleIdentifier TypeName IsExpression IfStatement | 2979 // SimpleIdentifier TypeName IsExpression IfStatement |
| 3122 addSource( | 2980 addSource('/testB.dart', ''' |
| 3123 '/testB.dart', | |
| 3124 ''' | |
| 3125 lib B; | 2981 lib B; |
| 3126 foo() { } | 2982 foo() { } |
| 3127 class X {X.c(); X._d(); z() {}}'''); | 2983 class X {X.c(); X._d(); z() {}}'''); |
| 3128 addTestSource(''' | 2984 addTestSource(''' |
| 3129 import "/testB.dart"; | 2985 import "/testB.dart"; |
| 3130 class Y {Y.c(); Y._d(); z() {}} | 2986 class Y {Y.c(); Y._d(); z() {}} |
| 3131 main() {var x; if (x is ^) { }}'''); | 2987 main() {var x; if (x is ^) { }}'''); |
| 3132 await computeSuggestions(); | 2988 await computeSuggestions(); |
| 3133 | 2989 |
| 3134 expect(replacementOffset, completionOffset); | 2990 expect(replacementOffset, completionOffset); |
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3229 | 3085 |
| 3230 expect(replacementOffset, completionOffset - 3); | 3086 expect(replacementOffset, completionOffset - 3); |
| 3231 expect(replacementLength, 3); | 3087 expect(replacementLength, 3); |
| 3232 assertNotSuggested('a'); | 3088 assertNotSuggested('a'); |
| 3233 assertNotSuggested('main'); | 3089 assertNotSuggested('main'); |
| 3234 assertSuggestClass('A'); | 3090 assertSuggestClass('A'); |
| 3235 assertNotSuggested('Object'); | 3091 assertNotSuggested('Object'); |
| 3236 } | 3092 } |
| 3237 | 3093 |
| 3238 test_keyword() async { | 3094 test_keyword() async { |
| 3239 addSource( | 3095 addSource('/testB.dart', ''' |
| 3240 '/testB.dart', | |
| 3241 ''' | |
| 3242 lib B; | 3096 lib B; |
| 3243 int newT1; | 3097 int newT1; |
| 3244 int T1; | 3098 int T1; |
| 3245 nowIsIt() { } | 3099 nowIsIt() { } |
| 3246 class X {factory X.c(); factory X._d(); z() {}}'''); | 3100 class X {factory X.c(); factory X._d(); z() {}}'''); |
| 3247 addTestSource(''' | 3101 addTestSource(''' |
| 3248 import "/testB.dart"; | 3102 import "/testB.dart"; |
| 3249 String newer() {} | 3103 String newer() {} |
| 3250 var m; | 3104 var m; |
| 3251 main() {new^ X.c();}'''); | 3105 main() {new^ X.c();}'''); |
| (...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3295 test_localVariableDeclarationName() async { | 3149 test_localVariableDeclarationName() async { |
| 3296 addTestSource('main() {String m^}'); | 3150 addTestSource('main() {String m^}'); |
| 3297 await computeSuggestions(); | 3151 await computeSuggestions(); |
| 3298 | 3152 |
| 3299 assertNotSuggested('main'); | 3153 assertNotSuggested('main'); |
| 3300 assertNotSuggested('min'); | 3154 assertNotSuggested('min'); |
| 3301 } | 3155 } |
| 3302 | 3156 |
| 3303 test_MapLiteralEntry() async { | 3157 test_MapLiteralEntry() async { |
| 3304 // MapLiteralEntry MapLiteral VariableDeclaration | 3158 // MapLiteralEntry MapLiteral VariableDeclaration |
| 3305 addSource( | 3159 addSource('/testA.dart', ''' |
| 3306 '/testA.dart', | |
| 3307 ''' | |
| 3308 int T1; | 3160 int T1; |
| 3309 F1() { } | 3161 F1() { } |
| 3310 typedef D1(); | 3162 typedef D1(); |
| 3311 class C1 {C1(this.x) { } int x;}'''); | 3163 class C1 {C1(this.x) { } int x;}'''); |
| 3312 addTestSource(''' | 3164 addTestSource(''' |
| 3313 import "/testA.dart"; | 3165 import "/testA.dart"; |
| 3314 int T2; | 3166 int T2; |
| 3315 F2() { } | 3167 F2() { } |
| 3316 typedef D2(); | 3168 typedef D2(); |
| 3317 class C2 { } | 3169 class C2 { } |
| 3318 foo = {^'''); | 3170 foo = {^'''); |
| 3319 await computeSuggestions(); | 3171 await computeSuggestions(); |
| 3320 | 3172 |
| 3321 expect(replacementOffset, completionOffset); | 3173 expect(replacementOffset, completionOffset); |
| 3322 expect(replacementLength, 0); | 3174 expect(replacementLength, 0); |
| 3323 assertNotSuggested('Object'); | 3175 assertNotSuggested('Object'); |
| 3324 assertNotSuggested('T1'); | 3176 assertNotSuggested('T1'); |
| 3325 assertNotSuggested('F1'); | 3177 assertNotSuggested('F1'); |
| 3326 assertNotSuggested('D1'); | 3178 assertNotSuggested('D1'); |
| 3327 assertNotSuggested('C1'); | 3179 assertNotSuggested('C1'); |
| 3328 assertSuggestTopLevelVar('T2', 'int', | 3180 assertSuggestTopLevelVar('T2', 'int', |
| 3329 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); | 3181 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); |
| 3330 assertSuggestFunction('F2', null, relevance: DART_RELEVANCE_LOCAL_FUNCTION); | 3182 assertSuggestFunction('F2', null, relevance: DART_RELEVANCE_LOCAL_FUNCTION); |
| 3331 assertSuggestFunctionTypeAlias('D2', null); | 3183 assertSuggestFunctionTypeAlias('D2', null); |
| 3332 assertSuggestClass('C2'); | 3184 assertSuggestClass('C2'); |
| 3333 } | 3185 } |
| 3334 | 3186 |
| 3335 test_MapLiteralEntry1() async { | 3187 test_MapLiteralEntry1() async { |
| 3336 // MapLiteralEntry MapLiteral VariableDeclaration | 3188 // MapLiteralEntry MapLiteral VariableDeclaration |
| 3337 addSource( | 3189 addSource('/testA.dart', ''' |
| 3338 '/testA.dart', | |
| 3339 ''' | |
| 3340 int T1; | 3190 int T1; |
| 3341 F1() { } | 3191 F1() { } |
| 3342 typedef D1(); | 3192 typedef D1(); |
| 3343 class C1 {C1(this.x) { } int x;}'''); | 3193 class C1 {C1(this.x) { } int x;}'''); |
| 3344 addTestSource(''' | 3194 addTestSource(''' |
| 3345 import "/testA.dart"; | 3195 import "/testA.dart"; |
| 3346 int T2; | 3196 int T2; |
| 3347 F2() { } | 3197 F2() { } |
| 3348 typedef D2(); | 3198 typedef D2(); |
| 3349 class C2 { } | 3199 class C2 { } |
| 3350 foo = {T^'''); | 3200 foo = {T^'''); |
| 3351 await computeSuggestions(); | 3201 await computeSuggestions(); |
| 3352 | 3202 |
| 3353 expect(replacementOffset, completionOffset - 1); | 3203 expect(replacementOffset, completionOffset - 1); |
| 3354 expect(replacementLength, 1); | 3204 expect(replacementLength, 1); |
| 3355 assertNotSuggested('T1'); | 3205 assertNotSuggested('T1'); |
| 3356 assertSuggestTopLevelVar('T2', 'int', | 3206 assertSuggestTopLevelVar('T2', 'int', |
| 3357 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); | 3207 relevance: DART_RELEVANCE_LOCAL_TOP_LEVEL_VARIABLE); |
| 3358 } | 3208 } |
| 3359 | 3209 |
| 3360 test_MapLiteralEntry2() async { | 3210 test_MapLiteralEntry2() async { |
| 3361 // SimpleIdentifier MapLiteralEntry MapLiteral VariableDeclaration | 3211 // SimpleIdentifier MapLiteralEntry MapLiteral VariableDeclaration |
| 3362 addSource( | 3212 addSource('/testA.dart', ''' |
| 3363 '/testA.dart', | |
| 3364 ''' | |
| 3365 int T1; | 3213 int T1; |
| 3366 F1() { } | 3214 F1() { } |
| 3367 typedef D1(); | 3215 typedef D1(); |
| 3368 class C1 {C1(this.x) { } int x;}'''); | 3216 class C1 {C1(this.x) { } int x;}'''); |
| 3369 addTestSource(''' | 3217 addTestSource(''' |
| 3370 import "/testA.dart"; | 3218 import "/testA.dart"; |
| 3371 int T2; | 3219 int T2; |
| 3372 F2() { } | 3220 F2() { } |
| 3373 typedef D2(); | 3221 typedef D2(); |
| 3374 class C2 { } | 3222 class C2 { } |
| (...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3482 CompletionSuggestion getterG = | 3330 CompletionSuggestion getterG = |
| 3483 assertSuggestGetter('_g', null, relevance: DART_RELEVANCE_DEFAULT); | 3331 assertSuggestGetter('_g', null, relevance: DART_RELEVANCE_DEFAULT); |
| 3484 if (getterG != null) { | 3332 if (getterG != null) { |
| 3485 expect(getterG.element.isDeprecated, isFalse); | 3333 expect(getterG.element.isDeprecated, isFalse); |
| 3486 expect(getterG.element.isPrivate, isTrue); | 3334 expect(getterG.element.isPrivate, isTrue); |
| 3487 } | 3335 } |
| 3488 } | 3336 } |
| 3489 | 3337 |
| 3490 test_MethodDeclaration_body_static() async { | 3338 test_MethodDeclaration_body_static() async { |
| 3491 // Block BlockFunctionBody MethodDeclaration | 3339 // Block BlockFunctionBody MethodDeclaration |
| 3492 addSource( | 3340 addSource('/testC.dart', ''' |
| 3493 '/testC.dart', | |
| 3494 ''' | |
| 3495 class C { | 3341 class C { |
| 3496 c1() {} | 3342 c1() {} |
| 3497 var c2; | 3343 var c2; |
| 3498 static c3() {} | 3344 static c3() {} |
| 3499 static var c4;}'''); | 3345 static var c4;}'''); |
| 3500 addTestSource(''' | 3346 addTestSource(''' |
| 3501 import "/testC.dart"; | 3347 import "/testC.dart"; |
| 3502 class B extends C { | 3348 class B extends C { |
| 3503 b1() {} | 3349 b1() {} |
| 3504 var b2; | 3350 var b2; |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3625 assertSuggestFunction('bar', 'void', | 3471 assertSuggestFunction('bar', 'void', |
| 3626 relevance: DART_RELEVANCE_LOCAL_FUNCTION); | 3472 relevance: DART_RELEVANCE_LOCAL_FUNCTION); |
| 3627 assertSuggestMethod('a', 'A', 'Z', relevance: DART_RELEVANCE_LOCAL_METHOD); | 3473 assertSuggestMethod('a', 'A', 'Z', relevance: DART_RELEVANCE_LOCAL_METHOD); |
| 3628 assertSuggestParameter('x', 'X'); | 3474 assertSuggestParameter('x', 'X'); |
| 3629 assertSuggestParameter('y', 'int'); | 3475 assertSuggestParameter('y', 'int'); |
| 3630 assertNotSuggested('String'); | 3476 assertNotSuggested('String'); |
| 3631 } | 3477 } |
| 3632 | 3478 |
| 3633 test_MethodDeclaration_returnType() async { | 3479 test_MethodDeclaration_returnType() async { |
| 3634 // ClassDeclaration CompilationUnit | 3480 // ClassDeclaration CompilationUnit |
| 3635 addSource( | 3481 addSource('/testA.dart', ''' |
| 3636 '/testA.dart', | |
| 3637 ''' | |
| 3638 int T1; | 3482 int T1; |
| 3639 F1() { } | 3483 F1() { } |
| 3640 typedef D1(); | 3484 typedef D1(); |
| 3641 class C1 {C1(this.x) { } int x;}'''); | 3485 class C1 {C1(this.x) { } int x;}'''); |
| 3642 addTestSource(''' | 3486 addTestSource(''' |
| 3643 import "/testA.dart"; | 3487 import "/testA.dart"; |
| 3644 int T2; | 3488 int T2; |
| 3645 F2() { } | 3489 F2() { } |
| 3646 typedef D2(); | 3490 typedef D2(); |
| 3647 class C2 {^ zoo(z) { } String name; }'''); | 3491 class C2 {^ zoo(z) { } String name; }'''); |
| 3648 await computeSuggestions(); | 3492 await computeSuggestions(); |
| 3649 | 3493 |
| 3650 expect(replacementOffset, completionOffset); | 3494 expect(replacementOffset, completionOffset); |
| 3651 expect(replacementLength, 0); | 3495 expect(replacementLength, 0); |
| 3652 assertNotSuggested('Object'); | 3496 assertNotSuggested('Object'); |
| 3653 assertNotSuggested('T1'); | 3497 assertNotSuggested('T1'); |
| 3654 assertNotSuggested('F1'); | 3498 assertNotSuggested('F1'); |
| 3655 assertNotSuggested('D1'); | 3499 assertNotSuggested('D1'); |
| 3656 assertNotSuggested('C1'); | 3500 assertNotSuggested('C1'); |
| 3657 assertNotSuggested('T2'); | 3501 assertNotSuggested('T2'); |
| 3658 assertNotSuggested('F2'); | 3502 assertNotSuggested('F2'); |
| 3659 assertSuggestFunctionTypeAlias('D2', null); | 3503 assertSuggestFunctionTypeAlias('D2', null); |
| 3660 assertSuggestClass('C2'); | 3504 assertSuggestClass('C2'); |
| 3661 assertNotSuggested('name'); | 3505 assertNotSuggested('name'); |
| 3662 } | 3506 } |
| 3663 | 3507 |
| 3664 test_MethodDeclaration_returnType_afterComment() async { | 3508 test_MethodDeclaration_returnType_afterComment() async { |
| 3665 // ClassDeclaration CompilationUnit | 3509 // ClassDeclaration CompilationUnit |
| 3666 addSource( | 3510 addSource('/testA.dart', ''' |
| 3667 '/testA.dart', | |
| 3668 ''' | |
| 3669 int T1; | 3511 int T1; |
| 3670 F1() { } | 3512 F1() { } |
| 3671 typedef D1(); | 3513 typedef D1(); |
| 3672 class C1 {C1(this.x) { } int x;}'''); | 3514 class C1 {C1(this.x) { } int x;}'''); |
| 3673 addTestSource(''' | 3515 addTestSource(''' |
| 3674 import "/testA.dart"; | 3516 import "/testA.dart"; |
| 3675 int T2; | 3517 int T2; |
| 3676 F2() { } | 3518 F2() { } |
| 3677 typedef D2(); | 3519 typedef D2(); |
| 3678 class C2 {/* */ ^ zoo(z) { } String name; }'''); | 3520 class C2 {/* */ ^ zoo(z) { } String name; }'''); |
| 3679 await computeSuggestions(); | 3521 await computeSuggestions(); |
| 3680 | 3522 |
| 3681 expect(replacementOffset, completionOffset); | 3523 expect(replacementOffset, completionOffset); |
| 3682 expect(replacementLength, 0); | 3524 expect(replacementLength, 0); |
| 3683 assertNotSuggested('Object'); | 3525 assertNotSuggested('Object'); |
| 3684 assertNotSuggested('T1'); | 3526 assertNotSuggested('T1'); |
| 3685 assertNotSuggested('F1'); | 3527 assertNotSuggested('F1'); |
| 3686 assertNotSuggested('D1'); | 3528 assertNotSuggested('D1'); |
| 3687 assertNotSuggested('C1'); | 3529 assertNotSuggested('C1'); |
| 3688 assertNotSuggested('T2'); | 3530 assertNotSuggested('T2'); |
| 3689 assertNotSuggested('F2'); | 3531 assertNotSuggested('F2'); |
| 3690 assertSuggestFunctionTypeAlias('D2', null); | 3532 assertSuggestFunctionTypeAlias('D2', null); |
| 3691 assertSuggestClass('C2'); | 3533 assertSuggestClass('C2'); |
| 3692 assertNotSuggested('name'); | 3534 assertNotSuggested('name'); |
| 3693 } | 3535 } |
| 3694 | 3536 |
| 3695 test_MethodDeclaration_returnType_afterComment2() async { | 3537 test_MethodDeclaration_returnType_afterComment2() async { |
| 3696 // MethodDeclaration ClassDeclaration CompilationUnit | 3538 // MethodDeclaration ClassDeclaration CompilationUnit |
| 3697 addSource( | 3539 addSource('/testA.dart', ''' |
| 3698 '/testA.dart', | |
| 3699 ''' | |
| 3700 int T1; | 3540 int T1; |
| 3701 F1() { } | 3541 F1() { } |
| 3702 typedef D1(); | 3542 typedef D1(); |
| 3703 class C1 {C1(this.x) { } int x;}'''); | 3543 class C1 {C1(this.x) { } int x;}'''); |
| 3704 addTestSource(''' | 3544 addTestSource(''' |
| 3705 import "/testA.dart"; | 3545 import "/testA.dart"; |
| 3706 int T2; | 3546 int T2; |
| 3707 F2() { } | 3547 F2() { } |
| 3708 typedef D2(); | 3548 typedef D2(); |
| 3709 class C2 {/** */ ^ zoo(z) { } String name; }'''); | 3549 class C2 {/** */ ^ zoo(z) { } String name; }'''); |
| 3710 await computeSuggestions(); | 3550 await computeSuggestions(); |
| 3711 | 3551 |
| 3712 expect(replacementOffset, completionOffset); | 3552 expect(replacementOffset, completionOffset); |
| 3713 expect(replacementLength, 0); | 3553 expect(replacementLength, 0); |
| 3714 assertNotSuggested('Object'); | 3554 assertNotSuggested('Object'); |
| 3715 assertNotSuggested('T1'); | 3555 assertNotSuggested('T1'); |
| 3716 assertNotSuggested('F1'); | 3556 assertNotSuggested('F1'); |
| 3717 assertNotSuggested('D1'); | 3557 assertNotSuggested('D1'); |
| 3718 assertNotSuggested('C1'); | 3558 assertNotSuggested('C1'); |
| 3719 assertNotSuggested('T2'); | 3559 assertNotSuggested('T2'); |
| 3720 assertNotSuggested('F2'); | 3560 assertNotSuggested('F2'); |
| 3721 assertSuggestFunctionTypeAlias('D2', null); | 3561 assertSuggestFunctionTypeAlias('D2', null); |
| 3722 assertSuggestClass('C2'); | 3562 assertSuggestClass('C2'); |
| 3723 assertNotSuggested('name'); | 3563 assertNotSuggested('name'); |
| 3724 } | 3564 } |
| 3725 | 3565 |
| 3726 test_MethodDeclaration_returnType_afterComment3() async { | 3566 test_MethodDeclaration_returnType_afterComment3() async { |
| 3727 // MethodDeclaration ClassDeclaration CompilationUnit | 3567 // MethodDeclaration ClassDeclaration CompilationUnit |
| 3728 addSource( | 3568 addSource('/testA.dart', ''' |
| 3729 '/testA.dart', | |
| 3730 ''' | |
| 3731 int T1; | 3569 int T1; |
| 3732 F1() { } | 3570 F1() { } |
| 3733 typedef D1(); | 3571 typedef D1(); |
| 3734 class C1 {C1(this.x) { } int x;}'''); | 3572 class C1 {C1(this.x) { } int x;}'''); |
| 3735 addTestSource(''' | 3573 addTestSource(''' |
| 3736 import "/testA.dart"; | 3574 import "/testA.dart"; |
| 3737 int T2; | 3575 int T2; |
| 3738 F2() { } | 3576 F2() { } |
| 3739 typedef D2(); | 3577 typedef D2(); |
| 3740 class C2 { | 3578 class C2 { |
| (...skipping 87 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3828 test_parameterName_excludeTypes() async { | 3666 test_parameterName_excludeTypes() async { |
| 3829 addTestSource('m(int ^) {}'); | 3667 addTestSource('m(int ^) {}'); |
| 3830 await computeSuggestions(); | 3668 await computeSuggestions(); |
| 3831 | 3669 |
| 3832 assertNotSuggested('int'); | 3670 assertNotSuggested('int'); |
| 3833 assertNotSuggested('bool'); | 3671 assertNotSuggested('bool'); |
| 3834 } | 3672 } |
| 3835 | 3673 |
| 3836 test_partFile_TypeName() async { | 3674 test_partFile_TypeName() async { |
| 3837 // SimpleIdentifier TypeName ConstructorName | 3675 // SimpleIdentifier TypeName ConstructorName |
| 3838 addSource( | 3676 addSource('/testB.dart', ''' |
| 3839 '/testB.dart', | |
| 3840 ''' | |
| 3841 lib B; | 3677 lib B; |
| 3842 int T1; | 3678 int T1; |
| 3843 F1() { } | 3679 F1() { } |
| 3844 class X {X.c(); X._d(); z() {}}'''); | 3680 class X {X.c(); X._d(); z() {}}'''); |
| 3845 addSource( | 3681 addSource('/testA.dart', ''' |
| 3846 '/testA.dart', | |
| 3847 ''' | |
| 3848 library libA; | 3682 library libA; |
| 3849 import "/testB.dart"; | 3683 import "/testB.dart"; |
| 3850 part "$testFile"; | 3684 part "$testFile"; |
| 3851 class A { } | 3685 class A { } |
| 3852 var m;'''); | 3686 var m;'''); |
| 3853 addTestSource(''' | 3687 addTestSource(''' |
| 3854 part of libA; | 3688 part of libA; |
| 3855 class B { factory B.bar(int x) => null; } | 3689 class B { factory B.bar(int x) => null; } |
| 3856 main() {new ^}'''); | 3690 main() {new ^}'''); |
| 3857 await computeSuggestions(); | 3691 await computeSuggestions(); |
| 3858 | 3692 |
| 3859 expect(replacementOffset, completionOffset); | 3693 expect(replacementOffset, completionOffset); |
| 3860 expect(replacementLength, 0); | 3694 expect(replacementLength, 0); |
| 3861 // Suggested by LocalConstructorContributor | 3695 // Suggested by LocalConstructorContributor |
| 3862 assertNotSuggested('B.bar'); | 3696 assertNotSuggested('B.bar'); |
| 3863 assertNotSuggested('Object'); | 3697 assertNotSuggested('Object'); |
| 3864 assertNotSuggested('X.c'); | 3698 assertNotSuggested('X.c'); |
| 3865 assertNotSuggested('X._d'); | 3699 assertNotSuggested('X._d'); |
| 3866 assertNotSuggested('A'); | 3700 assertNotSuggested('A'); |
| 3867 assertNotSuggested('F1'); | 3701 assertNotSuggested('F1'); |
| 3868 assertNotSuggested('T1'); | 3702 assertNotSuggested('T1'); |
| 3869 assertNotSuggested('_d'); | 3703 assertNotSuggested('_d'); |
| 3870 assertNotSuggested('z'); | 3704 assertNotSuggested('z'); |
| 3871 assertNotSuggested('m'); | 3705 assertNotSuggested('m'); |
| 3872 } | 3706 } |
| 3873 | 3707 |
| 3874 test_partFile_TypeName2() async { | 3708 test_partFile_TypeName2() async { |
| 3875 // SimpleIdentifier TypeName ConstructorName | 3709 // SimpleIdentifier TypeName ConstructorName |
| 3876 addSource( | 3710 addSource('/testB.dart', ''' |
| 3877 '/testB.dart', | |
| 3878 ''' | |
| 3879 lib B; | 3711 lib B; |
| 3880 int T1; | 3712 int T1; |
| 3881 F1() { } | 3713 F1() { } |
| 3882 class X {X.c(); X._d(); z() {}}'''); | 3714 class X {X.c(); X._d(); z() {}}'''); |
| 3883 addSource( | 3715 addSource('/testA.dart', ''' |
| 3884 '/testA.dart', | |
| 3885 ''' | |
| 3886 part of libA; | 3716 part of libA; |
| 3887 class B { }'''); | 3717 class B { }'''); |
| 3888 addTestSource(''' | 3718 addTestSource(''' |
| 3889 library libA; | 3719 library libA; |
| 3890 import "/testB.dart"; | 3720 import "/testB.dart"; |
| 3891 part "/testA.dart"; | 3721 part "/testA.dart"; |
| 3892 class A { A({String boo: 'hoo'}) { } } | 3722 class A { A({String boo: 'hoo'}) { } } |
| 3893 main() {new ^} | 3723 main() {new ^} |
| 3894 var m;'''); | 3724 var m;'''); |
| 3895 await computeLibrariesContaining(); | 3725 await computeLibrariesContaining(); |
| 3896 await computeSuggestions(); | 3726 await computeSuggestions(); |
| 3897 | 3727 |
| 3898 expect(replacementOffset, completionOffset); | 3728 expect(replacementOffset, completionOffset); |
| 3899 expect(replacementLength, 0); | 3729 expect(replacementLength, 0); |
| 3900 // Suggested by LocalConstructorContributor | 3730 // Suggested by LocalConstructorContributor |
| 3901 assertNotSuggested('A'); | 3731 assertNotSuggested('A'); |
| 3902 assertNotSuggested('Object'); | 3732 assertNotSuggested('Object'); |
| 3903 assertNotSuggested('X.c'); | 3733 assertNotSuggested('X.c'); |
| 3904 assertNotSuggested('X._d'); | 3734 assertNotSuggested('X._d'); |
| 3905 assertNotSuggested('B'); | 3735 assertNotSuggested('B'); |
| 3906 assertNotSuggested('F1'); | 3736 assertNotSuggested('F1'); |
| 3907 assertNotSuggested('T1'); | 3737 assertNotSuggested('T1'); |
| 3908 assertNotSuggested('_d'); | 3738 assertNotSuggested('_d'); |
| 3909 assertNotSuggested('z'); | 3739 assertNotSuggested('z'); |
| 3910 assertNotSuggested('m'); | 3740 assertNotSuggested('m'); |
| 3911 } | 3741 } |
| 3912 | 3742 |
| 3913 test_PrefixedIdentifier_class_const() async { | 3743 test_PrefixedIdentifier_class_const() async { |
| 3914 // SimpleIdentifier PrefixedIdentifier ExpressionStatement Block | 3744 // SimpleIdentifier PrefixedIdentifier ExpressionStatement Block |
| 3915 addSource( | 3745 addSource('/testB.dart', ''' |
| 3916 '/testB.dart', | |
| 3917 ''' | |
| 3918 lib B; | 3746 lib B; |
| 3919 class I { | 3747 class I { |
| 3920 static const scI = 'boo'; | 3748 static const scI = 'boo'; |
| 3921 X get f => new A(); | 3749 X get f => new A(); |
| 3922 get _g => new A();} | 3750 get _g => new A();} |
| 3923 class B implements I { | 3751 class B implements I { |
| 3924 static const int scB = 12; | 3752 static const int scB = 12; |
| 3925 var b; X _c; | 3753 var b; X _c; |
| 3926 X get d => new A();get _e => new A(); | 3754 X get d => new A();get _e => new A(); |
| 3927 set s1(I x) {} set _s2(I x) {} | 3755 set s1(I x) {} set _s2(I x) {} |
| (...skipping 26 matching lines...) Expand all Loading... |
| 3954 assertNotSuggested('a'); | 3782 assertNotSuggested('a'); |
| 3955 assertNotSuggested('A'); | 3783 assertNotSuggested('A'); |
| 3956 assertNotSuggested('X'); | 3784 assertNotSuggested('X'); |
| 3957 assertNotSuggested('w'); | 3785 assertNotSuggested('w'); |
| 3958 assertNotSuggested('Object'); | 3786 assertNotSuggested('Object'); |
| 3959 assertNotSuggested('=='); | 3787 assertNotSuggested('=='); |
| 3960 } | 3788 } |
| 3961 | 3789 |
| 3962 test_PrefixedIdentifier_class_imported() async { | 3790 test_PrefixedIdentifier_class_imported() async { |
| 3963 // SimpleIdentifier PrefixedIdentifier ExpressionStatement | 3791 // SimpleIdentifier PrefixedIdentifier ExpressionStatement |
| 3964 addSource( | 3792 addSource('/testB.dart', ''' |
| 3965 '/testB.dart', | |
| 3966 ''' | |
| 3967 lib B; | 3793 lib B; |
| 3968 class I {X get f => new A();get _g => new A();} | 3794 class I {X get f => new A();get _g => new A();} |
| 3969 class A implements I { | 3795 class A implements I { |
| 3970 static const int sc = 12; | 3796 static const int sc = 12; |
| 3971 @deprecated var b; X _c; | 3797 @deprecated var b; X _c; |
| 3972 X get d => new A();get _e => new A(); | 3798 X get d => new A();get _e => new A(); |
| 3973 set s1(I x) {} set _s2(I x) {} | 3799 set s1(I x) {} set _s2(I x) {} |
| 3974 m(X x) {} I _n(X x) {}} | 3800 m(X x) {} I _n(X x) {}} |
| 3975 class X{}'''); | 3801 class X{}'''); |
| 3976 addTestSource(''' | 3802 addTestSource(''' |
| (...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4035 test_PrefixedIdentifier_getter() async { | 3861 test_PrefixedIdentifier_getter() async { |
| 4036 // SimpleIdentifier PrefixedIdentifier ExpressionStatement | 3862 // SimpleIdentifier PrefixedIdentifier ExpressionStatement |
| 4037 addTestSource('String get g => "one"; f() {g.^}'); | 3863 addTestSource('String get g => "one"; f() {g.^}'); |
| 4038 await computeSuggestions(); | 3864 await computeSuggestions(); |
| 4039 | 3865 |
| 4040 assertNotSuggested('length'); | 3866 assertNotSuggested('length'); |
| 4041 } | 3867 } |
| 4042 | 3868 |
| 4043 test_PrefixedIdentifier_library() async { | 3869 test_PrefixedIdentifier_library() async { |
| 4044 // SimpleIdentifier PrefixedIdentifier ExpressionStatement | 3870 // SimpleIdentifier PrefixedIdentifier ExpressionStatement |
| 4045 addSource( | 3871 addSource('/testB.dart', ''' |
| 4046 '/testB.dart', | |
| 4047 ''' | |
| 4048 lib B; | 3872 lib B; |
| 4049 var T1; | 3873 var T1; |
| 4050 class X { } | 3874 class X { } |
| 4051 class Y { }'''); | 3875 class Y { }'''); |
| 4052 addTestSource(''' | 3876 addTestSource(''' |
| 4053 import "/testB.dart" as b; | 3877 import "/testB.dart" as b; |
| 4054 var T2; | 3878 var T2; |
| 4055 class A { } | 3879 class A { } |
| 4056 main() {b.^}'''); | 3880 main() {b.^}'''); |
| 4057 await computeSuggestions(); | 3881 await computeSuggestions(); |
| 4058 | 3882 |
| 4059 expect(replacementOffset, completionOffset); | 3883 expect(replacementOffset, completionOffset); |
| 4060 expect(replacementLength, 0); | 3884 expect(replacementLength, 0); |
| 4061 // Suggested by LibraryMemberContributor | 3885 // Suggested by LibraryMemberContributor |
| 4062 assertNotSuggested('X'); | 3886 assertNotSuggested('X'); |
| 4063 assertNotSuggested('Y'); | 3887 assertNotSuggested('Y'); |
| 4064 assertNotSuggested('T1'); | 3888 assertNotSuggested('T1'); |
| 4065 assertNotSuggested('T2'); | 3889 assertNotSuggested('T2'); |
| 4066 assertNotSuggested('Object'); | 3890 assertNotSuggested('Object'); |
| 4067 assertNotSuggested('b'); | 3891 assertNotSuggested('b'); |
| 4068 assertNotSuggested('A'); | 3892 assertNotSuggested('A'); |
| 4069 assertNotSuggested('=='); | 3893 assertNotSuggested('=='); |
| 4070 } | 3894 } |
| 4071 | 3895 |
| 4072 test_PrefixedIdentifier_library_typesOnly() async { | 3896 test_PrefixedIdentifier_library_typesOnly() async { |
| 4073 // SimpleIdentifier PrefixedIdentifier TypeName | 3897 // SimpleIdentifier PrefixedIdentifier TypeName |
| 4074 addSource( | 3898 addSource('/testB.dart', ''' |
| 4075 '/testB.dart', | |
| 4076 ''' | |
| 4077 lib B; | 3899 lib B; |
| 4078 var T1; | 3900 var T1; |
| 4079 class X { } | 3901 class X { } |
| 4080 class Y { }'''); | 3902 class Y { }'''); |
| 4081 addTestSource(''' | 3903 addTestSource(''' |
| 4082 import "/testB.dart" as b; | 3904 import "/testB.dart" as b; |
| 4083 var T2; | 3905 var T2; |
| 4084 class A { } | 3906 class A { } |
| 4085 foo(b.^ f) {}'''); | 3907 foo(b.^ f) {}'''); |
| 4086 await computeSuggestions(); | 3908 await computeSuggestions(); |
| 4087 | 3909 |
| 4088 expect(replacementOffset, completionOffset); | 3910 expect(replacementOffset, completionOffset); |
| 4089 expect(replacementLength, 0); | 3911 expect(replacementLength, 0); |
| 4090 // Suggested by LibraryMemberContributor | 3912 // Suggested by LibraryMemberContributor |
| 4091 assertNotSuggested('X'); | 3913 assertNotSuggested('X'); |
| 4092 assertNotSuggested('Y'); | 3914 assertNotSuggested('Y'); |
| 4093 assertNotSuggested('T1'); | 3915 assertNotSuggested('T1'); |
| 4094 assertNotSuggested('T2'); | 3916 assertNotSuggested('T2'); |
| 4095 assertNotSuggested('Object'); | 3917 assertNotSuggested('Object'); |
| 4096 assertNotSuggested('b'); | 3918 assertNotSuggested('b'); |
| 4097 assertNotSuggested('A'); | 3919 assertNotSuggested('A'); |
| 4098 assertNotSuggested('=='); | 3920 assertNotSuggested('=='); |
| 4099 } | 3921 } |
| 4100 | 3922 |
| 4101 test_PrefixedIdentifier_library_typesOnly2() async { | 3923 test_PrefixedIdentifier_library_typesOnly2() async { |
| 4102 // SimpleIdentifier PrefixedIdentifier TypeName | 3924 // SimpleIdentifier PrefixedIdentifier TypeName |
| 4103 addSource( | 3925 addSource('/testB.dart', ''' |
| 4104 '/testB.dart', | |
| 4105 ''' | |
| 4106 lib B; | 3926 lib B; |
| 4107 var T1; | 3927 var T1; |
| 4108 class X { } | 3928 class X { } |
| 4109 class Y { }'''); | 3929 class Y { }'''); |
| 4110 addTestSource(''' | 3930 addTestSource(''' |
| 4111 import "/testB.dart" as b; | 3931 import "/testB.dart" as b; |
| 4112 var T2; | 3932 var T2; |
| 4113 class A { } | 3933 class A { } |
| 4114 foo(b.^) {}'''); | 3934 foo(b.^) {}'''); |
| 4115 await computeSuggestions(); | 3935 await computeSuggestions(); |
| 4116 | 3936 |
| 4117 expect(replacementOffset, completionOffset); | 3937 expect(replacementOffset, completionOffset); |
| 4118 expect(replacementLength, 0); | 3938 expect(replacementLength, 0); |
| 4119 // Suggested by LibraryMemberContributor | 3939 // Suggested by LibraryMemberContributor |
| 4120 assertNotSuggested('X'); | 3940 assertNotSuggested('X'); |
| 4121 assertNotSuggested('Y'); | 3941 assertNotSuggested('Y'); |
| 4122 assertNotSuggested('T1'); | 3942 assertNotSuggested('T1'); |
| 4123 assertNotSuggested('T2'); | 3943 assertNotSuggested('T2'); |
| 4124 assertNotSuggested('Object'); | 3944 assertNotSuggested('Object'); |
| 4125 assertNotSuggested('b'); | 3945 assertNotSuggested('b'); |
| 4126 assertNotSuggested('A'); | 3946 assertNotSuggested('A'); |
| 4127 assertNotSuggested('=='); | 3947 assertNotSuggested('=='); |
| 4128 } | 3948 } |
| 4129 | 3949 |
| 4130 test_PrefixedIdentifier_parameter() async { | 3950 test_PrefixedIdentifier_parameter() async { |
| 4131 // SimpleIdentifier PrefixedIdentifier ExpressionStatement | 3951 // SimpleIdentifier PrefixedIdentifier ExpressionStatement |
| 4132 addSource( | 3952 addSource('/testB.dart', ''' |
| 4133 '/testB.dart', | |
| 4134 ''' | |
| 4135 lib B; | 3953 lib B; |
| 4136 class _W {M y; var _z;} | 3954 class _W {M y; var _z;} |
| 4137 class X extends _W {} | 3955 class X extends _W {} |
| 4138 class M{}'''); | 3956 class M{}'''); |
| 4139 addTestSource(''' | 3957 addTestSource(''' |
| 4140 import "/testB.dart"; | 3958 import "/testB.dart"; |
| 4141 foo(X x) {x.^}'''); | 3959 foo(X x) {x.^}'''); |
| 4142 await computeSuggestions(); | 3960 await computeSuggestions(); |
| 4143 | 3961 |
| 4144 expect(replacementOffset, completionOffset); | 3962 expect(replacementOffset, completionOffset); |
| 4145 expect(replacementLength, 0); | 3963 expect(replacementLength, 0); |
| 4146 assertNotSuggested('y'); | 3964 assertNotSuggested('y'); |
| 4147 assertNotSuggested('_z'); | 3965 assertNotSuggested('_z'); |
| 4148 assertNotSuggested('=='); | 3966 assertNotSuggested('=='); |
| 4149 } | 3967 } |
| 4150 | 3968 |
| 4151 test_PrefixedIdentifier_prefix() async { | 3969 test_PrefixedIdentifier_prefix() async { |
| 4152 // SimpleIdentifier PrefixedIdentifier ExpressionStatement | 3970 // SimpleIdentifier PrefixedIdentifier ExpressionStatement |
| 4153 addSource( | 3971 addSource('/testA.dart', ''' |
| 4154 '/testA.dart', | |
| 4155 ''' | |
| 4156 class A {static int bar = 10;} | 3972 class A {static int bar = 10;} |
| 4157 _B() {}'''); | 3973 _B() {}'''); |
| 4158 addTestSource(''' | 3974 addTestSource(''' |
| 4159 import "/testA.dart"; | 3975 import "/testA.dart"; |
| 4160 class X {foo(){A^.bar}}'''); | 3976 class X {foo(){A^.bar}}'''); |
| 4161 await computeSuggestions(); | 3977 await computeSuggestions(); |
| 4162 | 3978 |
| 4163 expect(replacementOffset, completionOffset - 1); | 3979 expect(replacementOffset, completionOffset - 1); |
| 4164 expect(replacementLength, 1); | 3980 expect(replacementLength, 1); |
| 4165 assertNotSuggested('A'); | 3981 assertNotSuggested('A'); |
| (...skipping 464 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 4630 // SimpleIdentifier VariableDeclaration VariableDeclarationList | 4446 // SimpleIdentifier VariableDeclaration VariableDeclarationList |
| 4631 // TopLevelVariableDeclaration | 4447 // TopLevelVariableDeclaration |
| 4632 addTestSource('class A {} var ^'); | 4448 addTestSource('class A {} var ^'); |
| 4633 await computeSuggestions(); | 4449 await computeSuggestions(); |
| 4634 | 4450 |
| 4635 assertNoSuggestions(); | 4451 assertNoSuggestions(); |
| 4636 } | 4452 } |
| 4637 | 4453 |
| 4638 test_TypeArgumentList() async { | 4454 test_TypeArgumentList() async { |
| 4639 // SimpleIdentifier BinaryExpression ExpressionStatement | 4455 // SimpleIdentifier BinaryExpression ExpressionStatement |
| 4640 addSource( | 4456 addSource('/testA.dart', ''' |
| 4641 '/testA.dart', | |
| 4642 ''' | |
| 4643 class C1 {int x;} | 4457 class C1 {int x;} |
| 4644 F1() => 0; | 4458 F1() => 0; |
| 4645 typedef String T1(int blat);'''); | 4459 typedef String T1(int blat);'''); |
| 4646 addTestSource(''' | 4460 addTestSource(''' |
| 4647 import "/testA.dart";' | 4461 import "/testA.dart";' |
| 4648 class C2 {int x;} | 4462 class C2 {int x;} |
| 4649 F2() => 0; | 4463 F2() => 0; |
| 4650 typedef int T2(int blat); | 4464 typedef int T2(int blat); |
| 4651 class C<E> {} | 4465 class C<E> {} |
| 4652 main() { C<^> c; }'''); | 4466 main() { C<^> c; }'''); |
| 4653 await computeSuggestions(); | 4467 await computeSuggestions(); |
| 4654 | 4468 |
| 4655 expect(replacementOffset, completionOffset); | 4469 expect(replacementOffset, completionOffset); |
| 4656 expect(replacementLength, 0); | 4470 expect(replacementLength, 0); |
| 4657 assertNotSuggested('Object'); | 4471 assertNotSuggested('Object'); |
| 4658 assertNotSuggested('C1'); | 4472 assertNotSuggested('C1'); |
| 4659 assertNotSuggested('T1'); | 4473 assertNotSuggested('T1'); |
| 4660 assertSuggestClass('C2'); | 4474 assertSuggestClass('C2'); |
| 4661 assertSuggestFunctionTypeAlias('T2', 'int'); | 4475 assertSuggestFunctionTypeAlias('T2', 'int'); |
| 4662 assertNotSuggested('F1'); | 4476 assertNotSuggested('F1'); |
| 4663 assertNotSuggested('F2'); | 4477 assertNotSuggested('F2'); |
| 4664 } | 4478 } |
| 4665 | 4479 |
| 4666 test_TypeArgumentList2() async { | 4480 test_TypeArgumentList2() async { |
| 4667 // TypeName TypeArgumentList TypeName | 4481 // TypeName TypeArgumentList TypeName |
| 4668 addSource( | 4482 addSource('/testA.dart', ''' |
| 4669 '/testA.dart', | |
| 4670 ''' | |
| 4671 class C1 {int x;} | 4483 class C1 {int x;} |
| 4672 F1() => 0; | 4484 F1() => 0; |
| 4673 typedef String T1(int blat);'''); | 4485 typedef String T1(int blat);'''); |
| 4674 addTestSource(''' | 4486 addTestSource(''' |
| 4675 import "/testA.dart";' | 4487 import "/testA.dart";' |
| 4676 class C2 {int x;} | 4488 class C2 {int x;} |
| 4677 F2() => 0; | 4489 F2() => 0; |
| 4678 typedef int T2(int blat); | 4490 typedef int T2(int blat); |
| 4679 class C<E> {} | 4491 class C<E> {} |
| 4680 main() { C<C^> c; }'''); | 4492 main() { C<C^> c; }'''); |
| 4681 await computeSuggestions(); | 4493 await computeSuggestions(); |
| 4682 | 4494 |
| 4683 expect(replacementOffset, completionOffset - 1); | 4495 expect(replacementOffset, completionOffset - 1); |
| 4684 expect(replacementLength, 1); | 4496 expect(replacementLength, 1); |
| 4685 assertNotSuggested('C1'); | 4497 assertNotSuggested('C1'); |
| 4686 assertSuggestClass('C2'); | 4498 assertSuggestClass('C2'); |
| 4687 } | 4499 } |
| 4688 | 4500 |
| 4689 test_VariableDeclaration_name() async { | 4501 test_VariableDeclaration_name() async { |
| 4690 // SimpleIdentifier VariableDeclaration VariableDeclarationList | 4502 // SimpleIdentifier VariableDeclaration VariableDeclarationList |
| 4691 // VariableDeclarationStatement Block | 4503 // VariableDeclarationStatement Block |
| 4692 addSource( | 4504 addSource('/testB.dart', ''' |
| 4693 '/testB.dart', | |
| 4694 ''' | |
| 4695 lib B; | 4505 lib B; |
| 4696 foo() { } | 4506 foo() { } |
| 4697 class _B { } | 4507 class _B { } |
| 4698 class X {X.c(); X._d(); z() {}}'''); | 4508 class X {X.c(); X._d(); z() {}}'''); |
| 4699 addTestSource(''' | 4509 addTestSource(''' |
| 4700 import "/testB.dart"; | 4510 import "/testB.dart"; |
| 4701 class Y {Y.c(); Y._d(); z() {}} | 4511 class Y {Y.c(); Y._d(); z() {}} |
| 4702 main() {var ^}'''); | 4512 main() {var ^}'''); |
| 4703 await computeSuggestions(); | 4513 await computeSuggestions(); |
| 4704 | 4514 |
| 4705 assertNoSuggestions(); | 4515 assertNoSuggestions(); |
| 4706 } | 4516 } |
| 4707 | 4517 |
| 4708 test_VariableDeclarationList_final() async { | 4518 test_VariableDeclarationList_final() async { |
| 4709 // VariableDeclarationList VariableDeclarationStatement Block | 4519 // VariableDeclarationList VariableDeclarationStatement Block |
| 4710 addTestSource('main() {final ^} class C { }'); | 4520 addTestSource('main() {final ^} class C { }'); |
| 4711 await computeSuggestions(); | 4521 await computeSuggestions(); |
| 4712 | 4522 |
| 4713 assertNotSuggested('Object'); | 4523 assertNotSuggested('Object'); |
| 4714 assertSuggestClass('C'); | 4524 assertSuggestClass('C'); |
| 4715 assertNotSuggested('=='); | 4525 assertNotSuggested('=='); |
| 4716 } | 4526 } |
| 4717 | 4527 |
| 4718 test_VariableDeclarationStatement_RHS() async { | 4528 test_VariableDeclarationStatement_RHS() async { |
| 4719 // SimpleIdentifier VariableDeclaration VariableDeclarationList | 4529 // SimpleIdentifier VariableDeclaration VariableDeclarationList |
| 4720 // VariableDeclarationStatement | 4530 // VariableDeclarationStatement |
| 4721 addSource( | 4531 addSource('/testB.dart', ''' |
| 4722 '/testB.dart', | |
| 4723 ''' | |
| 4724 lib B; | 4532 lib B; |
| 4725 foo() { } | 4533 foo() { } |
| 4726 class _B { } | 4534 class _B { } |
| 4727 class X {X.c(); X._d(); z() {}}'''); | 4535 class X {X.c(); X._d(); z() {}}'''); |
| 4728 addTestSource(''' | 4536 addTestSource(''' |
| 4729 import "/testB.dart"; | 4537 import "/testB.dart"; |
| 4730 class Y {Y.c(); Y._d(); z() {}} | 4538 class Y {Y.c(); Y._d(); z() {}} |
| 4731 class C {bar(){var f; {var x;} var e = ^}}'''); | 4539 class C {bar(){var f; {var x;} var e = ^}}'''); |
| 4732 await computeSuggestions(); | 4540 await computeSuggestions(); |
| 4733 | 4541 |
| 4734 expect(replacementOffset, completionOffset); | 4542 expect(replacementOffset, completionOffset); |
| 4735 expect(replacementLength, 0); | 4543 expect(replacementLength, 0); |
| 4736 assertNotSuggested('X'); | 4544 assertNotSuggested('X'); |
| 4737 assertNotSuggested('_B'); | 4545 assertNotSuggested('_B'); |
| 4738 assertSuggestClass('Y'); | 4546 assertSuggestClass('Y'); |
| 4739 assertSuggestClass('C'); | 4547 assertSuggestClass('C'); |
| 4740 assertSuggestLocalVariable('f', null); | 4548 assertSuggestLocalVariable('f', null); |
| 4741 assertNotSuggested('x'); | 4549 assertNotSuggested('x'); |
| 4742 assertNotSuggested('e'); | 4550 assertNotSuggested('e'); |
| 4743 } | 4551 } |
| 4744 | 4552 |
| 4745 test_VariableDeclarationStatement_RHS_missing_semicolon() async { | 4553 test_VariableDeclarationStatement_RHS_missing_semicolon() async { |
| 4746 // VariableDeclaration VariableDeclarationList | 4554 // VariableDeclaration VariableDeclarationList |
| 4747 // VariableDeclarationStatement | 4555 // VariableDeclarationStatement |
| 4748 addSource( | 4556 addSource('/testB.dart', ''' |
| 4749 '/testB.dart', | |
| 4750 ''' | |
| 4751 lib B; | 4557 lib B; |
| 4752 foo1() { } | 4558 foo1() { } |
| 4753 void bar1() { } | 4559 void bar1() { } |
| 4754 class _B { } | 4560 class _B { } |
| 4755 class X {X.c(); X._d(); z() {}}'''); | 4561 class X {X.c(); X._d(); z() {}}'''); |
| 4756 addTestSource(''' | 4562 addTestSource(''' |
| 4757 import "/testB.dart"; | 4563 import "/testB.dart"; |
| 4758 foo2() { } | 4564 foo2() { } |
| 4759 void bar2() { } | 4565 void bar2() { } |
| 4760 class Y {Y.c(); Y._d(); z() {}} | 4566 class Y {Y.c(); Y._d(); z() {}} |
| 4761 class C {bar(){var f; {var x;} var e = ^ var g}}'''); | 4567 class C {bar(){var f; {var x;} var e = ^ var g}}'''); |
| 4762 await computeSuggestions(); | 4568 await computeSuggestions(); |
| 4763 | 4569 |
| 4764 expect(replacementOffset, completionOffset); | 4570 expect(replacementOffset, completionOffset); |
| 4765 expect(replacementLength, 0); | 4571 expect(replacementLength, 0); |
| 4766 assertNotSuggested('X'); | 4572 assertNotSuggested('X'); |
| 4767 assertNotSuggested('foo1'); | 4573 assertNotSuggested('foo1'); |
| 4768 assertNotSuggested('bar1'); | 4574 assertNotSuggested('bar1'); |
| 4769 assertSuggestFunction('foo2', null, | 4575 assertSuggestFunction('foo2', null, |
| 4770 relevance: DART_RELEVANCE_LOCAL_FUNCTION); | 4576 relevance: DART_RELEVANCE_LOCAL_FUNCTION); |
| 4771 assertNotSuggested('bar2'); | 4577 assertNotSuggested('bar2'); |
| 4772 assertNotSuggested('_B'); | 4578 assertNotSuggested('_B'); |
| 4773 assertSuggestClass('Y'); | 4579 assertSuggestClass('Y'); |
| 4774 assertSuggestClass('C'); | 4580 assertSuggestClass('C'); |
| 4775 assertSuggestLocalVariable('f', null); | 4581 assertSuggestLocalVariable('f', null); |
| 4776 assertNotSuggested('x'); | 4582 assertNotSuggested('x'); |
| 4777 assertNotSuggested('e'); | 4583 assertNotSuggested('e'); |
| 4778 } | 4584 } |
| 4779 } | 4585 } |
| OLD | NEW |