| OLD | NEW |
| 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, 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 library analyzer.test.generated.element_resolver_test; | 5 library analyzer.test.generated.element_resolver_test; |
| 6 | 6 |
| 7 import 'package:analyzer/dart/ast/ast.dart'; | 7 import 'package:analyzer/dart/ast/ast.dart'; |
| 8 import 'package:analyzer/dart/ast/standard_ast_factory.dart'; | |
| 9 import 'package:analyzer/dart/ast/token.dart'; | 8 import 'package:analyzer/dart/ast/token.dart'; |
| 10 import 'package:analyzer/dart/element/element.dart'; | 9 import 'package:analyzer/dart/element/element.dart'; |
| 11 import 'package:analyzer/dart/element/type.dart'; | 10 import 'package:analyzer/dart/element/type.dart'; |
| 12 import 'package:analyzer/file_system/memory_file_system.dart'; | 11 import 'package:analyzer/file_system/memory_file_system.dart'; |
| 13 import 'package:analyzer/src/dart/element/element.dart'; | 12 import 'package:analyzer/src/dart/element/element.dart'; |
| 14 import 'package:analyzer/src/generated/element_resolver.dart'; | 13 import 'package:analyzer/src/generated/element_resolver.dart'; |
| 15 import 'package:analyzer/src/generated/engine.dart'; | 14 import 'package:analyzer/src/generated/engine.dart'; |
| 16 import 'package:analyzer/src/generated/resolver.dart'; | 15 import 'package:analyzer/src/generated/resolver.dart'; |
| 17 import 'package:analyzer/src/generated/source.dart'; | 16 import 'package:analyzer/src/generated/source.dart'; |
| 18 import 'package:analyzer/src/generated/testing/ast_test_factory.dart'; | 17 import 'package:analyzer/src/generated/testing/ast_test_factory.dart'; |
| (...skipping 521 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 540 PropertyAccessorElement getter = | 539 PropertyAccessorElement getter = |
| 541 ElementFactory.getterElement(propName, false, _typeProvider.intType); | 540 ElementFactory.getterElement(propName, false, _typeProvider.intType); |
| 542 PropertyAccessorElement setter = | 541 PropertyAccessorElement setter = |
| 543 ElementFactory.setterElement(propName, false, _typeProvider.intType); | 542 ElementFactory.setterElement(propName, false, _typeProvider.intType); |
| 544 classA.accessors = <PropertyAccessorElement>[getter, setter]; | 543 classA.accessors = <PropertyAccessorElement>[getter, setter]; |
| 545 // set name scope | 544 // set name scope |
| 546 _visitor.nameScope = new EnclosedScope(null) | 545 _visitor.nameScope = new EnclosedScope(null) |
| 547 ..defineNameWithoutChecking('A', classA); | 546 ..defineNameWithoutChecking('A', classA); |
| 548 // prepare "A.p" | 547 // prepare "A.p" |
| 549 PrefixedIdentifier prefixed = AstTestFactory.identifier5('A', 'p'); | 548 PrefixedIdentifier prefixed = AstTestFactory.identifier5('A', 'p'); |
| 550 CommentReference commentReference = | 549 CommentReference commentReference = new CommentReference(null, prefixed); |
| 551 astFactory.commentReference(null, prefixed); | |
| 552 // resolve | 550 // resolve |
| 553 _resolveNode(commentReference); | 551 _resolveNode(commentReference); |
| 554 expect(prefixed.prefix.staticElement, classA); | 552 expect(prefixed.prefix.staticElement, classA); |
| 555 expect(prefixed.identifier.staticElement, getter); | 553 expect(prefixed.identifier.staticElement, getter); |
| 556 _listener.assertNoErrors(); | 554 _listener.assertNoErrors(); |
| 557 } | 555 } |
| 558 | 556 |
| 559 void test_visitCommentReference_prefixedIdentifier_class_method() { | 557 void test_visitCommentReference_prefixedIdentifier_class_method() { |
| 560 ClassElementImpl classA = ElementFactory.classElement2("A"); | 558 ClassElementImpl classA = ElementFactory.classElement2("A"); |
| 561 // set method | 559 // set method |
| 562 MethodElement method = | 560 MethodElement method = |
| 563 ElementFactory.methodElement("m", _typeProvider.intType); | 561 ElementFactory.methodElement("m", _typeProvider.intType); |
| 564 classA.methods = <MethodElement>[method]; | 562 classA.methods = <MethodElement>[method]; |
| 565 // set name scope | 563 // set name scope |
| 566 _visitor.nameScope = new EnclosedScope(null) | 564 _visitor.nameScope = new EnclosedScope(null) |
| 567 ..defineNameWithoutChecking('A', classA); | 565 ..defineNameWithoutChecking('A', classA); |
| 568 // prepare "A.m" | 566 // prepare "A.m" |
| 569 PrefixedIdentifier prefixed = AstTestFactory.identifier5('A', 'm'); | 567 PrefixedIdentifier prefixed = AstTestFactory.identifier5('A', 'm'); |
| 570 CommentReference commentReference = | 568 CommentReference commentReference = new CommentReference(null, prefixed); |
| 571 astFactory.commentReference(null, prefixed); | |
| 572 // resolve | 569 // resolve |
| 573 _resolveNode(commentReference); | 570 _resolveNode(commentReference); |
| 574 expect(prefixed.prefix.staticElement, classA); | 571 expect(prefixed.prefix.staticElement, classA); |
| 575 expect(prefixed.identifier.staticElement, method); | 572 expect(prefixed.identifier.staticElement, method); |
| 576 _listener.assertNoErrors(); | 573 _listener.assertNoErrors(); |
| 577 } | 574 } |
| 578 | 575 |
| 579 void test_visitCommentReference_prefixedIdentifier_class_operator() { | 576 void test_visitCommentReference_prefixedIdentifier_class_operator() { |
| 580 ClassElementImpl classA = ElementFactory.classElement2("A"); | 577 ClassElementImpl classA = ElementFactory.classElement2("A"); |
| 581 // set method | 578 // set method |
| 582 MethodElement method = | 579 MethodElement method = |
| 583 ElementFactory.methodElement("==", _typeProvider.boolType); | 580 ElementFactory.methodElement("==", _typeProvider.boolType); |
| 584 classA.methods = <MethodElement>[method]; | 581 classA.methods = <MethodElement>[method]; |
| 585 // set name scope | 582 // set name scope |
| 586 _visitor.nameScope = new EnclosedScope(null) | 583 _visitor.nameScope = new EnclosedScope(null) |
| 587 ..defineNameWithoutChecking('A', classA); | 584 ..defineNameWithoutChecking('A', classA); |
| 588 // prepare "A.==" | 585 // prepare "A.==" |
| 589 PrefixedIdentifier prefixed = AstTestFactory.identifier5('A', '=='); | 586 PrefixedIdentifier prefixed = AstTestFactory.identifier5('A', '=='); |
| 590 CommentReference commentReference = | 587 CommentReference commentReference = new CommentReference(null, prefixed); |
| 591 astFactory.commentReference(null, prefixed); | |
| 592 // resolve | 588 // resolve |
| 593 _resolveNode(commentReference); | 589 _resolveNode(commentReference); |
| 594 expect(prefixed.prefix.staticElement, classA); | 590 expect(prefixed.prefix.staticElement, classA); |
| 595 expect(prefixed.identifier.staticElement, method); | 591 expect(prefixed.identifier.staticElement, method); |
| 596 _listener.assertNoErrors(); | 592 _listener.assertNoErrors(); |
| 597 } | 593 } |
| 598 | 594 |
| 599 void test_visitConstructorName_named() { | 595 void test_visitConstructorName_named() { |
| 600 ClassElementImpl classA = ElementFactory.classElement2("A"); | 596 ClassElementImpl classA = ElementFactory.classElement2("A"); |
| 601 String constructorName = "a"; | 597 String constructorName = "a"; |
| (...skipping 688 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1290 innerScope = new LabelScope( | 1286 innerScope = new LabelScope( |
| 1291 outerScope, labelElement.name, labelTarget, labelElement); | 1287 outerScope, labelElement.name, labelTarget, labelElement); |
| 1292 } | 1288 } |
| 1293 _visitor.labelScope = innerScope; | 1289 _visitor.labelScope = innerScope; |
| 1294 statement.accept(_resolver); | 1290 statement.accept(_resolver); |
| 1295 } finally { | 1291 } finally { |
| 1296 _visitor.labelScope = outerScope; | 1292 _visitor.labelScope = outerScope; |
| 1297 } | 1293 } |
| 1298 } | 1294 } |
| 1299 } | 1295 } |
| OLD | NEW |