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 |