| 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/dart/ast/ast.dart'; | 5 import 'package:analyzer/dart/ast/ast.dart'; |
| 6 import 'package:analyzer/dart/ast/standard_ast_factory.dart'; | 6 import 'package:analyzer/dart/ast/standard_ast_factory.dart'; |
| 7 import 'package:analyzer/dart/ast/token.dart'; | 7 import 'package:analyzer/dart/ast/token.dart'; |
| 8 import 'package:analyzer/dart/element/element.dart'; | 8 import 'package:analyzer/dart/element/element.dart'; |
| 9 import 'package:analyzer/dart/element/type.dart'; | 9 import 'package:analyzer/dart/element/type.dart'; |
| 10 import 'package:analyzer/src/dart/element/element.dart'; | 10 import 'package:analyzer/src/dart/element/element.dart'; |
| (...skipping 619 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 630 CompilationUnitElementImpl unitImpl = unit; | 630 CompilationUnitElementImpl unitImpl = unit; |
| 631 ElementImpl child = unitImpl.getChild(name.name); | 631 ElementImpl child = unitImpl.getChild(name.name); |
| 632 if (child != null) { | 632 if (child != null) { |
| 633 return child; | 633 return child; |
| 634 } | 634 } |
| 635 } | 635 } |
| 636 return null; | 636 return null; |
| 637 } | 637 } |
| 638 | 638 |
| 639 // Search in the class. | 639 // Search in the class. |
| 640 if (parentElement is ClassElementImpl) { | 640 if (parentElement is AbstractClassElementImpl) { |
| 641 if (isGetter) { | 641 if (isGetter) { |
| 642 return parentElement.getGetter(name.name) as ElementImpl; | 642 return parentElement.getGetter(name.name) as ElementImpl; |
| 643 } else if (isSetter) { | 643 } else if (isSetter) { |
| 644 return parentElement.getSetter(name.name) as ElementImpl; | 644 return parentElement.getSetter(name.name) as ElementImpl; |
| 645 } else if (isField) { | 645 } else if (isField) { |
| 646 return parentElement.getField(name.name) as ElementImpl; | 646 return parentElement.getField(name.name) as ElementImpl; |
| 647 } else if (isConstructor) { | 647 } else if (isConstructor) { |
| 648 if (name.name.isEmpty) { | 648 if (name.name.isEmpty) { |
| 649 return parentElement.unnamedConstructor as ConstructorElementImpl; | 649 return parentElement.unnamedConstructor as ConstructorElementImpl; |
| 650 } | 650 } |
| 651 return parentElement.getNamedConstructor(name.name) as ElementImpl; | 651 return parentElement.getNamedConstructor(name.name) as ElementImpl; |
| 652 } else if (isMethod) { | 652 } else if (isMethod) { |
| 653 return parentElement.getMethod(name.name) as ElementImpl; | 653 return parentElement.getMethod(name.name) as ElementImpl; |
| 654 } | 654 } |
| 655 return null; | 655 return null; |
| 656 } | 656 } |
| 657 | 657 |
| 658 throw new UnimplementedError('Should not be reached.'); | 658 throw new UnimplementedError('Should not be reached.'); |
| 659 } | 659 } |
| 660 | 660 |
| 661 InterfaceType _getInterfaceType(ElementImpl context, | 661 InterfaceType _getInterfaceType(ElementImpl context, |
| 662 kernel.CanonicalName className, List<kernel.DartType> kernelArguments) { | 662 kernel.CanonicalName className, List<kernel.DartType> kernelArguments) { |
| 663 var libraryName = className.parent; | 663 var libraryName = className.parent; |
| 664 var libraryElement = _resynthesizer.getLibrary(libraryName.name); | 664 var libraryElement = _resynthesizer.getLibrary(libraryName.name); |
| 665 ClassElementImpl classElement = libraryElement.getType(className.name); | 665 ClassElement classElement = libraryElement.getType(className.name); |
| 666 classElement ??= libraryElement.getEnum(className.name); |
| 666 | 667 |
| 667 if (kernelArguments.isEmpty) { | 668 if (kernelArguments.isEmpty) { |
| 668 return classElement.type; | 669 return classElement.type; |
| 669 } | 670 } |
| 670 | 671 |
| 671 return new InterfaceTypeImpl.elementWithNameAndArgs( | 672 return new InterfaceTypeImpl.elementWithNameAndArgs( |
| 672 classElement, classElement.name, () { | 673 classElement, classElement.name, () { |
| 673 List<DartType> arguments = kernelArguments | 674 List<DartType> arguments = kernelArguments |
| 674 .map((kernel.DartType k) => getType(context, k)) | 675 .map((kernel.DartType k) => getType(context, k)) |
| 675 .toList(growable: false); | 676 .toList(growable: false); |
| (...skipping 10 matching lines...) Expand all Loading... |
| 686 for (var typeParameter in ctx.typeParameters) { | 687 for (var typeParameter in ctx.typeParameters) { |
| 687 if (typeParameter.name == name) { | 688 if (typeParameter.name == name) { |
| 688 return typeParameter; | 689 return typeParameter; |
| 689 } | 690 } |
| 690 } | 691 } |
| 691 } | 692 } |
| 692 } | 693 } |
| 693 throw new StateError('Not found $kernelTypeParameter in $context'); | 694 throw new StateError('Not found $kernelTypeParameter in $context'); |
| 694 } | 695 } |
| 695 } | 696 } |
| OLD | NEW |