| 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.dart.element.builder; | 5 library analyzer.src.dart.element.builder; |
| 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/token.dart'; | 10 import 'package:analyzer/dart/ast/token.dart'; |
| (...skipping 438 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 449 SimpleIdentifier aliasName = node.name; | 449 SimpleIdentifier aliasName = node.name; |
| 450 List<TypeParameterElement> typeParameters = holder.typeParameters; | 450 List<TypeParameterElement> typeParameters = holder.typeParameters; |
| 451 GenericTypeAliasElementImpl element = | 451 GenericTypeAliasElementImpl element = |
| 452 new GenericTypeAliasElementImpl.forNode(aliasName); | 452 new GenericTypeAliasElementImpl.forNode(aliasName); |
| 453 _setCodeRange(element, node); | 453 _setCodeRange(element, node); |
| 454 element.metadata = _createElementAnnotations(node.metadata); | 454 element.metadata = _createElementAnnotations(node.metadata); |
| 455 setElementDocumentationComment(element, node); | 455 setElementDocumentationComment(element, node); |
| 456 element.typeParameters = typeParameters; | 456 element.typeParameters = typeParameters; |
| 457 _createTypeParameterTypes(typeParameters); | 457 _createTypeParameterTypes(typeParameters); |
| 458 element.type = new FunctionTypeImpl.forTypedef(element); | 458 element.type = new FunctionTypeImpl.forTypedef(element); |
| 459 element.function = node.functionType.type.element; | 459 element.function = node.functionType?.type?.element; |
| 460 _currentHolder.addTypeAlias(element); | 460 _currentHolder.addTypeAlias(element); |
| 461 aliasName.staticElement = element; | 461 aliasName.staticElement = element; |
| 462 holder.validate(); | 462 holder.validate(); |
| 463 return null; | 463 return null; |
| 464 } | 464 } |
| 465 | 465 |
| 466 @override | 466 @override |
| 467 Object visitImportDirective(ImportDirective node) { | 467 Object visitImportDirective(ImportDirective node) { |
| 468 List<ElementAnnotation> annotations = | 468 List<ElementAnnotation> annotations = |
| 469 _createElementAnnotations(node.metadata); | 469 _createElementAnnotations(node.metadata); |
| (...skipping 969 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1439 // visible range | 1439 // visible range |
| 1440 _setParameterVisibleRange(node, parameter); | 1440 _setParameterVisibleRange(node, parameter); |
| 1441 if (normalParameter is SimpleFormalParameter && | 1441 if (normalParameter is SimpleFormalParameter && |
| 1442 normalParameter.type == null) { | 1442 normalParameter.type == null) { |
| 1443 parameter.hasImplicitType = true; | 1443 parameter.hasImplicitType = true; |
| 1444 } | 1444 } |
| 1445 _currentHolder.addParameter(parameter); | 1445 _currentHolder.addParameter(parameter); |
| 1446 if (normalParameter is SimpleFormalParameterImpl) { | 1446 if (normalParameter is SimpleFormalParameterImpl) { |
| 1447 normalParameter.element = parameter; | 1447 normalParameter.element = parameter; |
| 1448 } | 1448 } |
| 1449 parameterName.staticElement = parameter; | 1449 parameterName?.staticElement = parameter; |
| 1450 normalParameter.accept(this); | 1450 normalParameter.accept(this); |
| 1451 return null; | 1451 return null; |
| 1452 } | 1452 } |
| 1453 | 1453 |
| 1454 @override | 1454 @override |
| 1455 Object visitFunctionTypedFormalParameter(FunctionTypedFormalParameter node) { | 1455 Object visitFunctionTypedFormalParameter(FunctionTypedFormalParameter node) { |
| 1456 if (node.parent is! DefaultFormalParameter) { | 1456 if (node.parent is! DefaultFormalParameter) { |
| 1457 SimpleIdentifier parameterName = node.identifier; | 1457 SimpleIdentifier parameterName = node.identifier; |
| 1458 ParameterElementImpl parameter = | 1458 ParameterElementImpl parameter = |
| 1459 new ParameterElementImpl.forNode(parameterName); | 1459 new ParameterElementImpl.forNode(parameterName); |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1668 return null; | 1668 return null; |
| 1669 } | 1669 } |
| 1670 | 1670 |
| 1671 /** | 1671 /** |
| 1672 * Return the lexical identifiers associated with the given [identifiers]. | 1672 * Return the lexical identifiers associated with the given [identifiers]. |
| 1673 */ | 1673 */ |
| 1674 static List<String> _getIdentifiers(NodeList<SimpleIdentifier> identifiers) { | 1674 static List<String> _getIdentifiers(NodeList<SimpleIdentifier> identifiers) { |
| 1675 return identifiers.map((identifier) => identifier.name).toList(); | 1675 return identifiers.map((identifier) => identifier.name).toList(); |
| 1676 } | 1676 } |
| 1677 } | 1677 } |
| OLD | NEW |