| OLD | NEW |
| 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2017, 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:analyzer_plugin/protocol/protocol_common.dart'; | 5 import 'package:analyzer_plugin/protocol/protocol_common.dart'; |
| 6 import 'package:analyzer_plugin/utilities/completion/completion_core.dart'; | 6 import 'package:analyzer_plugin/utilities/completion/completion_core.dart'; |
| 7 import 'package:analyzer_plugin/utilities/completion/inherited_reference_contrib
utor.dart'; | 7 import 'package:analyzer_plugin/utilities/completion/inherited_reference_contrib
utor.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 11 matching lines...) Expand all Loading... |
| 22 bool get isNullExpectedReturnTypeConsideredDynamic => false; | 22 bool get isNullExpectedReturnTypeConsideredDynamic => false; |
| 23 | 23 |
| 24 @override | 24 @override |
| 25 CompletionContributor createContributor() { | 25 CompletionContributor createContributor() { |
| 26 return new InheritedReferenceContributor(); | 26 return new InheritedReferenceContributor(); |
| 27 } | 27 } |
| 28 | 28 |
| 29 /// Sanity check. Permutations tested in local_ref_contributor. | 29 /// Sanity check. Permutations tested in local_ref_contributor. |
| 30 test_ArgDefaults_inherited_method_with_required_named() async { | 30 test_ArgDefaults_inherited_method_with_required_named() async { |
| 31 addMetaPackageSource(); | 31 addMetaPackageSource(); |
| 32 resolveSource( | 32 resolveSource('/testB.dart', ''' |
| 33 '/testB.dart', | |
| 34 ''' | |
| 35 import 'package:meta/meta.dart'; | 33 import 'package:meta/meta.dart'; |
| 36 | 34 |
| 37 lib libB; | 35 lib libB; |
| 38 class A { | 36 class A { |
| 39 bool foo(int bar, {bool boo, @required int baz}) => false; | 37 bool foo(int bar, {bool boo, @required int baz}) => false; |
| 40 }'''); | 38 }'''); |
| 41 addTestSource(''' | 39 addTestSource(''' |
| 42 import "testB.dart"; | 40 import "testB.dart"; |
| 43 class B extends A { | 41 class B extends A { |
| 44 b() => f^ | 42 b() => f^ |
| 45 } | 43 } |
| 46 '''); | 44 '''); |
| 47 await computeSuggestions(); | 45 await computeSuggestions(); |
| 48 | 46 |
| 49 assertSuggestMethod('foo', 'A', 'bool', | 47 assertSuggestMethod('foo', 'A', 'bool', |
| 50 defaultArgListString: 'bar, baz: null'); | 48 defaultArgListString: 'bar, baz: null'); |
| 51 } | 49 } |
| 52 | 50 |
| 53 test_AwaitExpression_inherited() async { | 51 test_AwaitExpression_inherited() async { |
| 54 // SimpleIdentifier AwaitExpression ExpressionStatement | 52 // SimpleIdentifier AwaitExpression ExpressionStatement |
| 55 resolveSource( | 53 resolveSource('/testB.dart', ''' |
| 56 '/testB.dart', | |
| 57 ''' | |
| 58 lib libB; | 54 lib libB; |
| 59 class A { | 55 class A { |
| 60 Future y() async {return 0;} | 56 Future y() async {return 0;} |
| 61 }'''); | 57 }'''); |
| 62 addTestSource(''' | 58 addTestSource(''' |
| 63 import "testB.dart"; | 59 import "testB.dart"; |
| 64 class B extends A { | 60 class B extends A { |
| 65 Future a() async {return 0;} | 61 Future a() async {return 0;} |
| 66 foo() async {await ^} | 62 foo() async {await ^} |
| 67 } | 63 } |
| 68 '''); | 64 '''); |
| 69 | 65 |
| 70 await computeSuggestions(); | 66 await computeSuggestions(); |
| 71 expect(replacementOffset, completionOffset); | 67 expect(replacementOffset, completionOffset); |
| 72 expect(replacementLength, 0); | 68 expect(replacementLength, 0); |
| 73 assertNotSuggested('a'); | 69 assertNotSuggested('a'); |
| 74 assertNotSuggested('foo'); | 70 assertNotSuggested('foo'); |
| 75 assertNotSuggested('B'); | 71 assertNotSuggested('B'); |
| 76 assertNotSuggested('A'); | 72 assertNotSuggested('A'); |
| 77 assertNotSuggested('Object'); | 73 assertNotSuggested('Object'); |
| 78 assertSuggestMethod('y', 'A', 'dynamic'); | 74 assertSuggestMethod('y', 'A', 'dynamic'); |
| 79 } | 75 } |
| 80 | 76 |
| 81 test_Block_inherited_imported() async { | 77 test_Block_inherited_imported() async { |
| 82 // Block BlockFunctionBody MethodDeclaration ClassDeclaration | 78 // Block BlockFunctionBody MethodDeclaration ClassDeclaration |
| 83 resolveSource( | 79 resolveSource('/testB.dart', ''' |
| 84 '/testB.dart', | |
| 85 ''' | |
| 86 lib B; | 80 lib B; |
| 87 class F { var f1; f2() { } get f3 => 0; set f4(fx) { } var _pf; } | 81 class F { var f1; f2() { } get f3 => 0; set f4(fx) { } var _pf; } |
| 88 class E extends F { var e1; e2() { } } | 82 class E extends F { var e1; e2() { } } |
| 89 class I { int i1; i2() { } } | 83 class I { int i1; i2() { } } |
| 90 class M { var m1; int m2() { } }'''); | 84 class M { var m1; int m2() { } }'''); |
| 91 addTestSource(''' | 85 addTestSource(''' |
| 92 import "testB.dart"; | 86 import "testB.dart"; |
| 93 class A extends E implements I with M {a() {^}}'''); | 87 class A extends E implements I with M {a() {^}}'''); |
| 94 await computeSuggestions(); | 88 await computeSuggestions(); |
| 95 expect(replacementOffset, completionOffset); | 89 expect(replacementOffset, completionOffset); |
| (...skipping 29 matching lines...) Expand all Loading... |
| 125 assertSuggestField('m1', null); | 119 assertSuggestField('m1', null); |
| 126 assertSuggestGetter('f3', null); | 120 assertSuggestGetter('f3', null); |
| 127 assertSuggestSetter('f4'); | 121 assertSuggestSetter('f4'); |
| 128 assertSuggestMethod('e2', 'E', null); | 122 assertSuggestMethod('e2', 'E', null); |
| 129 assertSuggestMethod('f2', 'F', null); | 123 assertSuggestMethod('f2', 'F', null); |
| 130 assertSuggestMethod('i2', 'I', null); | 124 assertSuggestMethod('i2', 'I', null); |
| 131 assertSuggestMethod('m2', 'M', 'int'); | 125 assertSuggestMethod('m2', 'M', 'int'); |
| 132 } | 126 } |
| 133 | 127 |
| 134 test_inherited() async { | 128 test_inherited() async { |
| 135 resolveSource( | 129 resolveSource('/testB.dart', ''' |
| 136 '/testB.dart', | |
| 137 ''' | |
| 138 lib libB; | 130 lib libB; |
| 139 class A2 { | 131 class A2 { |
| 140 int x; | 132 int x; |
| 141 int y() {return 0;} | 133 int y() {return 0;} |
| 142 int x2; | 134 int x2; |
| 143 int y2() {return 0;} | 135 int y2() {return 0;} |
| 144 }'''); | 136 }'''); |
| 145 addTestSource(''' | 137 addTestSource(''' |
| 146 import "testB.dart"; | 138 import "testB.dart"; |
| 147 class A1 { | 139 class A1 { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 179 class A { | 171 class A { |
| 180 void m(x, int y) {} | 172 void m(x, int y) {} |
| 181 main() {^} | 173 main() {^} |
| 182 } | 174 } |
| 183 '''); | 175 '''); |
| 184 await computeSuggestions(); | 176 await computeSuggestions(); |
| 185 assertNotSuggested('m'); | 177 assertNotSuggested('m'); |
| 186 } | 178 } |
| 187 | 179 |
| 188 test_method_parameters_mixed_required_and_named() async { | 180 test_method_parameters_mixed_required_and_named() async { |
| 189 resolveSource( | 181 resolveSource('/libA.dart', ''' |
| 190 '/libA.dart', | |
| 191 ''' | |
| 192 class A { | 182 class A { |
| 193 void m(x, {int y}) {} | 183 void m(x, {int y}) {} |
| 194 } | 184 } |
| 195 '''); | 185 '''); |
| 196 addTestSource(''' | 186 addTestSource(''' |
| 197 import 'libA.dart'; | 187 import 'libA.dart'; |
| 198 class B extends A { | 188 class B extends A { |
| 199 main() {^} | 189 main() {^} |
| 200 } | 190 } |
| 201 '''); | 191 '''); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 224 expect(suggestion.parameterNames, hasLength(2)); | 214 expect(suggestion.parameterNames, hasLength(2)); |
| 225 expect(suggestion.parameterNames[0], 'x'); | 215 expect(suggestion.parameterNames[0], 'x'); |
| 226 expect(suggestion.parameterTypes[0], 'dynamic'); | 216 expect(suggestion.parameterTypes[0], 'dynamic'); |
| 227 expect(suggestion.parameterNames[1], 'y'); | 217 expect(suggestion.parameterNames[1], 'y'); |
| 228 expect(suggestion.parameterTypes[1], 'int'); | 218 expect(suggestion.parameterTypes[1], 'int'); |
| 229 expect(suggestion.requiredParameterCount, 1); | 219 expect(suggestion.requiredParameterCount, 1); |
| 230 expect(suggestion.hasNamedParameters, true); | 220 expect(suggestion.hasNamedParameters, true); |
| 231 } | 221 } |
| 232 | 222 |
| 233 test_method_parameters_mixed_required_and_positional() async { | 223 test_method_parameters_mixed_required_and_positional() async { |
| 234 resolveSource( | 224 resolveSource('/libA.dart', ''' |
| 235 '/libA.dart', | |
| 236 ''' | |
| 237 class A { | 225 class A { |
| 238 void m(x, [int y]) {} | 226 void m(x, [int y]) {} |
| 239 } | 227 } |
| 240 '''); | 228 '''); |
| 241 addTestSource(''' | 229 addTestSource(''' |
| 242 import 'libA.dart'; | 230 import 'libA.dart'; |
| 243 class B extends A { | 231 class B extends A { |
| 244 main() {^} | 232 main() {^} |
| 245 } | 233 } |
| 246 '''); | 234 '''); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 269 expect(suggestion.parameterNames, hasLength(2)); | 257 expect(suggestion.parameterNames, hasLength(2)); |
| 270 expect(suggestion.parameterNames[0], 'x'); | 258 expect(suggestion.parameterNames[0], 'x'); |
| 271 expect(suggestion.parameterTypes[0], 'dynamic'); | 259 expect(suggestion.parameterTypes[0], 'dynamic'); |
| 272 expect(suggestion.parameterNames[1], 'y'); | 260 expect(suggestion.parameterNames[1], 'y'); |
| 273 expect(suggestion.parameterTypes[1], 'int'); | 261 expect(suggestion.parameterTypes[1], 'int'); |
| 274 expect(suggestion.requiredParameterCount, 1); | 262 expect(suggestion.requiredParameterCount, 1); |
| 275 expect(suggestion.hasNamedParameters, false); | 263 expect(suggestion.hasNamedParameters, false); |
| 276 } | 264 } |
| 277 | 265 |
| 278 test_method_parameters_named() async { | 266 test_method_parameters_named() async { |
| 279 resolveSource( | 267 resolveSource('/libA.dart', ''' |
| 280 '/libA.dart', | |
| 281 ''' | |
| 282 class A { | 268 class A { |
| 283 void m({x, int y}) {} | 269 void m({x, int y}) {} |
| 284 } | 270 } |
| 285 '''); | 271 '''); |
| 286 addTestSource(''' | 272 addTestSource(''' |
| 287 import 'libA.dart'; | 273 import 'libA.dart'; |
| 288 class B extends A { | 274 class B extends A { |
| 289 main() {^} | 275 main() {^} |
| 290 } | 276 } |
| 291 '''); | 277 '''); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 314 expect(suggestion.parameterNames, hasLength(2)); | 300 expect(suggestion.parameterNames, hasLength(2)); |
| 315 expect(suggestion.parameterNames[0], 'x'); | 301 expect(suggestion.parameterNames[0], 'x'); |
| 316 expect(suggestion.parameterTypes[0], 'dynamic'); | 302 expect(suggestion.parameterTypes[0], 'dynamic'); |
| 317 expect(suggestion.parameterNames[1], 'y'); | 303 expect(suggestion.parameterNames[1], 'y'); |
| 318 expect(suggestion.parameterTypes[1], 'int'); | 304 expect(suggestion.parameterTypes[1], 'int'); |
| 319 expect(suggestion.requiredParameterCount, 0); | 305 expect(suggestion.requiredParameterCount, 0); |
| 320 expect(suggestion.hasNamedParameters, true); | 306 expect(suggestion.hasNamedParameters, true); |
| 321 } | 307 } |
| 322 | 308 |
| 323 test_method_parameters_none() async { | 309 test_method_parameters_none() async { |
| 324 resolveSource( | 310 resolveSource('/libA.dart', ''' |
| 325 '/libA.dart', | |
| 326 ''' | |
| 327 class A { | 311 class A { |
| 328 void m() {} | 312 void m() {} |
| 329 } | 313 } |
| 330 '''); | 314 '''); |
| 331 addTestSource(''' | 315 addTestSource(''' |
| 332 import 'libA.dart'; | 316 import 'libA.dart'; |
| 333 class B extends A { | 317 class B extends A { |
| 334 main() {^} | 318 main() {^} |
| 335 } | 319 } |
| 336 '''); | 320 '''); |
| (...skipping 16 matching lines...) Expand all Loading... |
| 353 '''); | 337 '''); |
| 354 await computeSuggestions(); | 338 await computeSuggestions(); |
| 355 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void'); | 339 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void'); |
| 356 expect(suggestion.parameterNames, isEmpty); | 340 expect(suggestion.parameterNames, isEmpty); |
| 357 expect(suggestion.parameterTypes, isEmpty); | 341 expect(suggestion.parameterTypes, isEmpty); |
| 358 expect(suggestion.requiredParameterCount, 0); | 342 expect(suggestion.requiredParameterCount, 0); |
| 359 expect(suggestion.hasNamedParameters, false); | 343 expect(suggestion.hasNamedParameters, false); |
| 360 } | 344 } |
| 361 | 345 |
| 362 test_method_parameters_positional() async { | 346 test_method_parameters_positional() async { |
| 363 resolveSource( | 347 resolveSource('/libA.dart', ''' |
| 364 '/libA.dart', | |
| 365 ''' | |
| 366 class A { | 348 class A { |
| 367 void m([x, int y]) {} | 349 void m([x, int y]) {} |
| 368 } | 350 } |
| 369 '''); | 351 '''); |
| 370 addTestSource(''' | 352 addTestSource(''' |
| 371 import 'libA.dart'; | 353 import 'libA.dart'; |
| 372 class B extends A { | 354 class B extends A { |
| 373 main() {^} | 355 main() {^} |
| 374 } | 356 } |
| 375 '''); | 357 '''); |
| (...skipping 22 matching lines...) Expand all Loading... |
| 398 expect(suggestion.parameterNames, hasLength(2)); | 380 expect(suggestion.parameterNames, hasLength(2)); |
| 399 expect(suggestion.parameterNames[0], 'x'); | 381 expect(suggestion.parameterNames[0], 'x'); |
| 400 expect(suggestion.parameterTypes[0], 'dynamic'); | 382 expect(suggestion.parameterTypes[0], 'dynamic'); |
| 401 expect(suggestion.parameterNames[1], 'y'); | 383 expect(suggestion.parameterNames[1], 'y'); |
| 402 expect(suggestion.parameterTypes[1], 'int'); | 384 expect(suggestion.parameterTypes[1], 'int'); |
| 403 expect(suggestion.requiredParameterCount, 0); | 385 expect(suggestion.requiredParameterCount, 0); |
| 404 expect(suggestion.hasNamedParameters, false); | 386 expect(suggestion.hasNamedParameters, false); |
| 405 } | 387 } |
| 406 | 388 |
| 407 test_method_parameters_required() async { | 389 test_method_parameters_required() async { |
| 408 resolveSource( | 390 resolveSource('/libA.dart', ''' |
| 409 '/libA.dart', | |
| 410 ''' | |
| 411 class A { | 391 class A { |
| 412 void m(x, int y) {} | 392 void m(x, int y) {} |
| 413 } | 393 } |
| 414 '''); | 394 '''); |
| 415 addTestSource(''' | 395 addTestSource(''' |
| 416 import 'libA.dart'; | 396 import 'libA.dart'; |
| 417 class B extends A { | 397 class B extends A { |
| 418 main() {^} | 398 main() {^} |
| 419 } | 399 } |
| 420 '''); | 400 '''); |
| 421 await computeSuggestions(); | 401 await computeSuggestions(); |
| 422 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void'); | 402 CompletionSuggestion suggestion = assertSuggestMethod('m', 'A', 'void'); |
| 423 expect(suggestion.parameterNames, hasLength(2)); | 403 expect(suggestion.parameterNames, hasLength(2)); |
| 424 expect(suggestion.parameterNames[0], 'x'); | 404 expect(suggestion.parameterNames[0], 'x'); |
| 425 expect(suggestion.parameterTypes[0], 'dynamic'); | 405 expect(suggestion.parameterTypes[0], 'dynamic'); |
| 426 expect(suggestion.parameterNames[1], 'y'); | 406 expect(suggestion.parameterNames[1], 'y'); |
| 427 expect(suggestion.parameterTypes[1], 'int'); | 407 expect(suggestion.parameterTypes[1], 'int'); |
| 428 expect(suggestion.requiredParameterCount, 2); | 408 expect(suggestion.requiredParameterCount, 2); |
| 429 expect(suggestion.hasNamedParameters, false); | 409 expect(suggestion.hasNamedParameters, false); |
| 430 } | 410 } |
| 431 | 411 |
| 432 test_mixin_ordering() async { | 412 test_mixin_ordering() async { |
| 433 resolveSource( | 413 resolveSource('/libA.dart', ''' |
| 434 '/libA.dart', | |
| 435 ''' | |
| 436 class B {} | 414 class B {} |
| 437 class M1 { | 415 class M1 { |
| 438 void m() {} | 416 void m() {} |
| 439 } | 417 } |
| 440 class M2 { | 418 class M2 { |
| 441 void m() {} | 419 void m() {} |
| 442 } | 420 } |
| 443 '''); | 421 '''); |
| 444 addTestSource(''' | 422 addTestSource(''' |
| 445 import 'libA.dart'; | 423 import 'libA.dart'; |
| 446 class C extends B with M1, M2 { | 424 class C extends B with M1, M2 { |
| 447 void f() { | 425 void f() { |
| 448 ^ | 426 ^ |
| 449 } | 427 } |
| 450 } | 428 } |
| 451 '''); | 429 '''); |
| 452 await computeSuggestions(); | 430 await computeSuggestions(); |
| 453 assertSuggestMethod('m', 'M1', 'void'); | 431 assertSuggestMethod('m', 'M1', 'void'); |
| 454 } | 432 } |
| 455 | 433 |
| 456 test_no_parameters_field() async { | 434 test_no_parameters_field() async { |
| 457 resolveSource( | 435 resolveSource('/libA.dart', ''' |
| 458 '/libA.dart', | |
| 459 ''' | |
| 460 class A { | 436 class A { |
| 461 int x; | 437 int x; |
| 462 } | 438 } |
| 463 '''); | 439 '''); |
| 464 addTestSource(''' | 440 addTestSource(''' |
| 465 import 'libA.dart'; | 441 import 'libA.dart'; |
| 466 class B extends A { | 442 class B extends A { |
| 467 main() {^} | 443 main() {^} |
| 468 } | 444 } |
| 469 '''); | 445 '''); |
| 470 await computeSuggestions(); | 446 await computeSuggestions(); |
| 471 CompletionSuggestion suggestion = assertSuggestField('x', 'int'); | 447 CompletionSuggestion suggestion = assertSuggestField('x', 'int'); |
| 472 assertHasNoParameterInfo(suggestion); | 448 assertHasNoParameterInfo(suggestion); |
| 473 } | 449 } |
| 474 | 450 |
| 475 test_no_parameters_getter() async { | 451 test_no_parameters_getter() async { |
| 476 resolveSource( | 452 resolveSource('/libA.dart', ''' |
| 477 '/libA.dart', | |
| 478 ''' | |
| 479 class A { | 453 class A { |
| 480 int get x => null; | 454 int get x => null; |
| 481 } | 455 } |
| 482 '''); | 456 '''); |
| 483 addTestSource(''' | 457 addTestSource(''' |
| 484 import 'libA.dart'; | 458 import 'libA.dart'; |
| 485 class B extends A { | 459 class B extends A { |
| 486 main() {^} | 460 main() {^} |
| 487 } | 461 } |
| 488 '''); | 462 '''); |
| 489 await computeSuggestions(); | 463 await computeSuggestions(); |
| 490 CompletionSuggestion suggestion = assertSuggestGetter('x', 'int'); | 464 CompletionSuggestion suggestion = assertSuggestGetter('x', 'int'); |
| 491 assertHasNoParameterInfo(suggestion); | 465 assertHasNoParameterInfo(suggestion); |
| 492 } | 466 } |
| 493 | 467 |
| 494 test_no_parameters_setter() async { | 468 test_no_parameters_setter() async { |
| 495 resolveSource( | 469 resolveSource('/libA.dart', ''' |
| 496 '/libA.dart', | |
| 497 ''' | |
| 498 class A { | 470 class A { |
| 499 set x(int value) {}; | 471 set x(int value) {}; |
| 500 } | 472 } |
| 501 '''); | 473 '''); |
| 502 addTestSource(''' | 474 addTestSource(''' |
| 503 import 'libA.dart'; | 475 import 'libA.dart'; |
| 504 class B extends A { | 476 class B extends A { |
| 505 main() {^} | 477 main() {^} |
| 506 } | 478 } |
| 507 '''); | 479 '''); |
| 508 await computeSuggestions(); | 480 await computeSuggestions(); |
| 509 CompletionSuggestion suggestion = assertSuggestSetter('x'); | 481 CompletionSuggestion suggestion = assertSuggestSetter('x'); |
| 510 assertHasNoParameterInfo(suggestion); | 482 assertHasNoParameterInfo(suggestion); |
| 511 } | 483 } |
| 512 | 484 |
| 513 test_outside_class() async { | 485 test_outside_class() async { |
| 514 resolveSource( | 486 resolveSource('/testB.dart', ''' |
| 515 '/testB.dart', | |
| 516 ''' | |
| 517 lib libB; | 487 lib libB; |
| 518 class A2 { | 488 class A2 { |
| 519 int x; | 489 int x; |
| 520 int y() {return 0;} | 490 int y() {return 0;} |
| 521 int x2; | 491 int x2; |
| 522 int y2() {return 0;} | 492 int y2() {return 0;} |
| 523 }'''); | 493 }'''); |
| 524 addTestSource(''' | 494 addTestSource(''' |
| 525 import "testB.dart"; | 495 import "testB.dart"; |
| 526 class A1 { | 496 class A1 { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 547 assertNotSuggested('A'); | 517 assertNotSuggested('A'); |
| 548 assertNotSuggested('x'); | 518 assertNotSuggested('x'); |
| 549 assertNotSuggested('y'); | 519 assertNotSuggested('y'); |
| 550 assertNotSuggested('x1'); | 520 assertNotSuggested('x1'); |
| 551 assertNotSuggested('y1'); | 521 assertNotSuggested('y1'); |
| 552 assertNotSuggested('x2'); | 522 assertNotSuggested('x2'); |
| 553 assertNotSuggested('y2'); | 523 assertNotSuggested('y2'); |
| 554 } | 524 } |
| 555 | 525 |
| 556 test_static_field() async { | 526 test_static_field() async { |
| 557 resolveSource( | 527 resolveSource('/testB.dart', ''' |
| 558 '/testB.dart', | |
| 559 ''' | |
| 560 lib libB; | 528 lib libB; |
| 561 class A2 { | 529 class A2 { |
| 562 int x; | 530 int x; |
| 563 int y() {return 0;} | 531 int y() {return 0;} |
| 564 int x2; | 532 int x2; |
| 565 int y2() {return 0;} | 533 int y2() {return 0;} |
| 566 }'''); | 534 }'''); |
| 567 addTestSource(''' | 535 addTestSource(''' |
| 568 import "testB.dart"; | 536 import "testB.dart"; |
| 569 class A1 { | 537 class A1 { |
| (...skipping 20 matching lines...) Expand all Loading... |
| 590 assertNotSuggested('A'); | 558 assertNotSuggested('A'); |
| 591 assertNotSuggested('x'); | 559 assertNotSuggested('x'); |
| 592 assertNotSuggested('y'); | 560 assertNotSuggested('y'); |
| 593 assertNotSuggested('x1'); | 561 assertNotSuggested('x1'); |
| 594 assertNotSuggested('y1'); | 562 assertNotSuggested('y1'); |
| 595 assertNotSuggested('x2'); | 563 assertNotSuggested('x2'); |
| 596 assertNotSuggested('y2'); | 564 assertNotSuggested('y2'); |
| 597 } | 565 } |
| 598 | 566 |
| 599 test_static_method() async { | 567 test_static_method() async { |
| 600 resolveSource( | 568 resolveSource('/testB.dart', ''' |
| 601 '/testB.dart', | |
| 602 ''' | |
| 603 lib libB; | 569 lib libB; |
| 604 class A2 { | 570 class A2 { |
| 605 int x; | 571 int x; |
| 606 int y() {return 0;} | 572 int y() {return 0;} |
| 607 int x2; | 573 int x2; |
| 608 int y2() {return 0;} | 574 int y2() {return 0;} |
| 609 }'''); | 575 }'''); |
| 610 addTestSource(''' | 576 addTestSource(''' |
| 611 import "testB.dart"; | 577 import "testB.dart"; |
| 612 class A1 { | 578 class A1 { |
| (...skipping 19 matching lines...) Expand all Loading... |
| 632 assertNotSuggested('foo'); | 598 assertNotSuggested('foo'); |
| 633 assertNotSuggested('A'); | 599 assertNotSuggested('A'); |
| 634 assertNotSuggested('x'); | 600 assertNotSuggested('x'); |
| 635 assertNotSuggested('y'); | 601 assertNotSuggested('y'); |
| 636 assertNotSuggested('x1'); | 602 assertNotSuggested('x1'); |
| 637 assertNotSuggested('y1'); | 603 assertNotSuggested('y1'); |
| 638 assertNotSuggested('x2'); | 604 assertNotSuggested('x2'); |
| 639 assertNotSuggested('y2'); | 605 assertNotSuggested('y2'); |
| 640 } | 606 } |
| 641 } | 607 } |
| OLD | NEW |