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 211 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
222 _unitElement.setAnnotations(node.offset, annotations); | 222 _unitElement.setAnnotations(node.offset, annotations); |
223 return super.visitExportDirective(node); | 223 return super.visitExportDirective(node); |
224 } | 224 } |
225 | 225 |
226 @override | 226 @override |
227 Object visitExpressionFunctionBody(ExpressionFunctionBody node) { | 227 Object visitExpressionFunctionBody(ExpressionFunctionBody node) { |
228 return null; | 228 return null; |
229 } | 229 } |
230 | 230 |
231 @override | 231 @override |
232 Object visitFieldFormalParameter(FieldFormalParameter node) { | |
233 if (node.parent is! DefaultFormalParameter) { | |
234 SimpleIdentifier parameterName = node.identifier; | |
235 FieldFormalParameterElementImpl parameter = | |
236 new FieldFormalParameterElementImpl.forNode(parameterName); | |
237 _setCodeRange(parameter, node); | |
238 _setFieldParameterField(node, parameter); | |
239 parameter.isConst = node.isConst; | |
240 parameter.isExplicitlyCovariant = node.covariantKeyword != null; | |
241 parameter.isFinal = node.isFinal; | |
242 parameter.parameterKind = node.kind; | |
243 _currentHolder.addParameter(parameter); | |
244 parameterName.staticElement = parameter; | |
245 } | |
246 // | |
247 // The children of this parameter include any parameters defined on the type | |
248 // of this parameter. | |
249 // | |
250 ElementHolder holder = new ElementHolder(); | |
251 _visitChildren(holder, node); | |
252 ParameterElementImpl element = node.element; | |
253 element.metadata = _createElementAnnotations(node.metadata); | |
254 element.parameters = holder.parameters; | |
255 element.typeParameters = holder.typeParameters; | |
256 holder.validate(); | |
257 return null; | |
258 } | |
259 | |
260 @override | |
261 Object visitFunctionDeclaration(FunctionDeclaration node) { | 232 Object visitFunctionDeclaration(FunctionDeclaration node) { |
262 FunctionExpression expression = node.functionExpression; | 233 FunctionExpression expression = node.functionExpression; |
263 if (expression != null) { | 234 if (expression != null) { |
264 ElementHolder holder = new ElementHolder(); | 235 ElementHolder holder = new ElementHolder(); |
265 _visitChildren(holder, node); | 236 _visitChildren(holder, node); |
266 FunctionBody body = expression.body; | 237 FunctionBody body = expression.body; |
267 Token property = node.propertyKeyword; | 238 Token property = node.propertyKeyword; |
268 if (property == null) { | 239 if (property == null) { |
269 SimpleIdentifier functionName = node.name; | 240 SimpleIdentifier functionName = node.name; |
270 FunctionElementImpl element = | 241 FunctionElementImpl element = |
(...skipping 1174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
1445 _currentHolder.addParameter(parameter); | 1416 _currentHolder.addParameter(parameter); |
1446 if (normalParameter is SimpleFormalParameterImpl) { | 1417 if (normalParameter is SimpleFormalParameterImpl) { |
1447 normalParameter.element = parameter; | 1418 normalParameter.element = parameter; |
1448 } | 1419 } |
1449 parameterName?.staticElement = parameter; | 1420 parameterName?.staticElement = parameter; |
1450 normalParameter.accept(this); | 1421 normalParameter.accept(this); |
1451 return null; | 1422 return null; |
1452 } | 1423 } |
1453 | 1424 |
1454 @override | 1425 @override |
1426 Object visitFieldFormalParameter(FieldFormalParameter node) { | |
Brian Wilkerson
2017/04/04 20:00:34
What's up with the sort order? This method shouldn
scheglov
2017/04/04 20:02:28
I moved it manually from one class (ApiElementBuil
Brian Wilkerson
2017/04/04 20:11:56
And unlike 'git diff', this tool doesn't provide t
| |
1427 if (node.parent is! DefaultFormalParameter) { | |
1428 SimpleIdentifier parameterName = node.identifier; | |
1429 FieldFormalParameterElementImpl parameter = | |
1430 new FieldFormalParameterElementImpl.forNode(parameterName); | |
1431 _setCodeRange(parameter, node); | |
1432 _setFieldParameterField(node, parameter); | |
1433 parameter.isConst = node.isConst; | |
1434 parameter.isExplicitlyCovariant = node.covariantKeyword != null; | |
1435 parameter.isFinal = node.isFinal; | |
1436 parameter.parameterKind = node.kind; | |
1437 _currentHolder.addParameter(parameter); | |
1438 parameterName.staticElement = parameter; | |
1439 } | |
1440 // | |
1441 // The children of this parameter include any parameters defined on the type | |
1442 // of this parameter. | |
1443 // | |
1444 ElementHolder holder = new ElementHolder(); | |
1445 _visitChildren(holder, node); | |
1446 ParameterElementImpl element = node.element; | |
1447 element.metadata = _createElementAnnotations(node.metadata); | |
1448 element.parameters = holder.parameters; | |
1449 element.typeParameters = holder.typeParameters; | |
1450 holder.validate(); | |
1451 return null; | |
1452 } | |
1453 | |
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); |
1460 _setCodeRange(parameter, node); | 1460 _setCodeRange(parameter, node); |
1461 parameter.isConst = node.isConst; | 1461 parameter.isConst = node.isConst; |
1462 parameter.isExplicitlyCovariant = node.covariantKeyword != null; | 1462 parameter.isExplicitlyCovariant = node.covariantKeyword != null; |
1463 parameter.isFinal = node.isFinal; | 1463 parameter.isFinal = node.isFinal; |
1464 parameter.parameterKind = node.kind; | 1464 parameter.parameterKind = node.kind; |
(...skipping 203 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 |