| 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 380 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 391 element.typeParameters = typeParameters; | 391 element.typeParameters = typeParameters; |
| 392 _createTypeParameterTypes(typeParameters); | 392 _createTypeParameterTypes(typeParameters); |
| 393 element.type = new FunctionTypeImpl.forTypedef(element); | 393 element.type = new FunctionTypeImpl.forTypedef(element); |
| 394 _currentHolder.addTypeAlias(element); | 394 _currentHolder.addTypeAlias(element); |
| 395 aliasName.staticElement = element; | 395 aliasName.staticElement = element; |
| 396 holder.validate(); | 396 holder.validate(); |
| 397 return null; | 397 return null; |
| 398 } | 398 } |
| 399 | 399 |
| 400 @override | 400 @override |
| 401 Object visitGenericFunctionType(GenericFunctionType node) { | |
| 402 ElementHolder holder = new ElementHolder(); | |
| 403 _visitChildren(holder, node); | |
| 404 GenericFunctionTypeElementImpl element = | |
| 405 new GenericFunctionTypeElementImpl.forOffset(node.beginToken.offset); | |
| 406 _setCodeRange(element, node); | |
| 407 element.parameters = holder.parameters; | |
| 408 element.typeParameters = holder.typeParameters; | |
| 409 FunctionType type = new FunctionTypeImpl(element); | |
| 410 element.type = type; | |
| 411 (node as GenericFunctionTypeImpl).type = type; | |
| 412 holder.validate(); | |
| 413 return null; | |
| 414 } | |
| 415 | |
| 416 @override | |
| 417 Object visitGenericTypeAlias(GenericTypeAlias node) { | 401 Object visitGenericTypeAlias(GenericTypeAlias node) { |
| 418 ElementHolder holder = new ElementHolder(); | 402 ElementHolder holder = new ElementHolder(); |
| 419 _visitChildren(holder, node); | 403 _visitChildren(holder, node); |
| 420 SimpleIdentifier aliasName = node.name; | 404 SimpleIdentifier aliasName = node.name; |
| 421 List<TypeParameterElement> typeParameters = holder.typeParameters; | 405 List<TypeParameterElement> typeParameters = holder.typeParameters; |
| 422 GenericTypeAliasElementImpl element = | 406 GenericTypeAliasElementImpl element = |
| 423 new GenericTypeAliasElementImpl.forNode(aliasName); | 407 new GenericTypeAliasElementImpl.forNode(aliasName); |
| 424 _setCodeRange(element, node); | 408 _setCodeRange(element, node); |
| 425 element.metadata = _createElementAnnotations(node.metadata); | 409 element.metadata = _createElementAnnotations(node.metadata); |
| 426 setElementDocumentationComment(element, node); | 410 setElementDocumentationComment(element, node); |
| (...skipping 1047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1474 _visitChildren(holder, node); | 1458 _visitChildren(holder, node); |
| 1475 ParameterElementImpl element = node.element; | 1459 ParameterElementImpl element = node.element; |
| 1476 element.metadata = _createElementAnnotations(node.metadata); | 1460 element.metadata = _createElementAnnotations(node.metadata); |
| 1477 element.parameters = holder.parameters; | 1461 element.parameters = holder.parameters; |
| 1478 element.typeParameters = holder.typeParameters; | 1462 element.typeParameters = holder.typeParameters; |
| 1479 holder.validate(); | 1463 holder.validate(); |
| 1480 return null; | 1464 return null; |
| 1481 } | 1465 } |
| 1482 | 1466 |
| 1483 @override | 1467 @override |
| 1468 Object visitGenericFunctionType(GenericFunctionType node) { |
| 1469 ElementHolder holder = new ElementHolder(); |
| 1470 _visitChildren(holder, node); |
| 1471 GenericFunctionTypeElementImpl element = |
| 1472 new GenericFunctionTypeElementImpl.forOffset(node.beginToken.offset); |
| 1473 _setCodeRange(element, node); |
| 1474 element.parameters = holder.parameters; |
| 1475 element.typeParameters = holder.typeParameters; |
| 1476 FunctionType type = new FunctionTypeImpl(element); |
| 1477 element.type = type; |
| 1478 (node as GenericFunctionTypeImpl).type = type; |
| 1479 holder.validate(); |
| 1480 return null; |
| 1481 } |
| 1482 |
| 1483 @override |
| 1484 Object visitSimpleFormalParameter(SimpleFormalParameter node) { | 1484 Object visitSimpleFormalParameter(SimpleFormalParameter node) { |
| 1485 ParameterElementImpl parameter; | 1485 ParameterElementImpl parameter; |
| 1486 if (node.parent is! DefaultFormalParameter) { | 1486 if (node.parent is! DefaultFormalParameter) { |
| 1487 SimpleIdentifier parameterName = node.identifier; | 1487 SimpleIdentifier parameterName = node.identifier; |
| 1488 parameter = new ParameterElementImpl.forNode(parameterName); | 1488 parameter = new ParameterElementImpl.forNode(parameterName); |
| 1489 _setCodeRange(parameter, node); | 1489 _setCodeRange(parameter, node); |
| 1490 parameter.isConst = node.isConst; | 1490 parameter.isConst = node.isConst; |
| 1491 parameter.isExplicitlyCovariant = node.covariantKeyword != null; | 1491 parameter.isExplicitlyCovariant = node.covariantKeyword != null; |
| 1492 parameter.isFinal = node.isFinal; | 1492 parameter.isFinal = node.isFinal; |
| 1493 parameter.parameterKind = node.kind; | 1493 parameter.parameterKind = node.kind; |
| (...skipping 174 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 |