| 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 library analyzer.src.generated.resolver; | 5 library analyzer.src.generated.resolver; |
| 6 | 6 |
| 7 import 'dart:collection'; | 7 import 'dart:collection'; |
| 8 | 8 |
| 9 import 'package:analyzer/dart/ast/ast.dart'; | 9 import 'package:analyzer/dart/ast/ast.dart'; |
| 10 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; | 10 import 'package:analyzer/dart/ast/standard_resolution_map.dart'; |
| (...skipping 9832 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 9843 Element element = node.identifier.staticElement; | 9843 Element element = node.identifier.staticElement; |
| 9844 if (element is ParameterElementImpl) { | 9844 if (element is ParameterElementImpl) { |
| 9845 _setFunctionTypedParameterType(element, node.returnType, node.parameters); | 9845 _setFunctionTypedParameterType(element, node.returnType, node.parameters); |
| 9846 } else { | 9846 } else { |
| 9847 // TODO(brianwilkerson) Report this internal error | 9847 // TODO(brianwilkerson) Report this internal error |
| 9848 } | 9848 } |
| 9849 return null; | 9849 return null; |
| 9850 } | 9850 } |
| 9851 | 9851 |
| 9852 @override | 9852 @override |
| 9853 Object visitGenericFunctionType(GenericFunctionType node) { | |
| 9854 DartType returnType = node.returnType?.type ?? DynamicTypeImpl.instance; | |
| 9855 List<TypeParameterElement> typeParameters = node | |
| 9856 .typeParameters.typeParameters | |
| 9857 .map((TypeParameter parameter) => | |
| 9858 parameter.element as TypeParameterElement) | |
| 9859 .toList(); | |
| 9860 List<ParameterElement> parameters = node.parameters.parameters | |
| 9861 .map((FormalParameter parameter) => parameter.element) | |
| 9862 .toList(); | |
| 9863 (node as GenericFunctionTypeImpl).type = | |
| 9864 new FunctionTypeImpl.forGenericFunctionType( | |
| 9865 typeParameters, DartType.EMPTY_LIST, returnType, parameters, false); | |
| 9866 return null; | |
| 9867 } | |
| 9868 | |
| 9869 @override | |
| 9870 Object visitMethodDeclaration(MethodDeclaration node) { | 9853 Object visitMethodDeclaration(MethodDeclaration node) { |
| 9871 super.visitMethodDeclaration(node); | 9854 super.visitMethodDeclaration(node); |
| 9872 ExecutableElementImpl element = node.element as ExecutableElementImpl; | 9855 ExecutableElementImpl element = node.element as ExecutableElementImpl; |
| 9873 if (element == null) { | 9856 if (element == null) { |
| 9874 ClassDeclaration classNode = | 9857 ClassDeclaration classNode = |
| 9875 node.getAncestor((node) => node is ClassDeclaration); | 9858 node.getAncestor((node) => node is ClassDeclaration); |
| 9876 StringBuffer buffer = new StringBuffer(); | 9859 StringBuffer buffer = new StringBuffer(); |
| 9877 buffer.write("The element for the method "); | 9860 buffer.write("The element for the method "); |
| 9878 buffer.write(node.name.name); | 9861 buffer.write(node.name.name); |
| 9879 buffer.write(" in "); | 9862 buffer.write(" in "); |
| (...skipping 976 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10856 return null; | 10839 return null; |
| 10857 } | 10840 } |
| 10858 if (identical(node.staticElement, variable)) { | 10841 if (identical(node.staticElement, variable)) { |
| 10859 if (node.inSetterContext()) { | 10842 if (node.inSetterContext()) { |
| 10860 result = true; | 10843 result = true; |
| 10861 } | 10844 } |
| 10862 } | 10845 } |
| 10863 return null; | 10846 return null; |
| 10864 } | 10847 } |
| 10865 } | 10848 } |
| OLD | NEW |