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 |