OLD | NEW |
1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2013, 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 elements.modelx; | 5 library elements.modelx; |
6 | 6 |
7 import '../common.dart'; | 7 import '../common.dart'; |
8 import '../common/names.dart' show Identifiers; | 8 import '../common/names.dart' show Identifiers; |
9 import '../common/resolution.dart' show Resolution, ParsingContext; | 9 import '../common/resolution.dart' show Resolution, ParsingContext; |
10 import '../compiler.dart' show Compiler; | 10 import '../compiler.dart' show Compiler; |
(...skipping 1326 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1337 * system. | 1337 * system. |
1338 * | 1338 * |
1339 * The [functionSignature] is not available until the typedef element has been | 1339 * The [functionSignature] is not available until the typedef element has been |
1340 * resolved. | 1340 * resolved. |
1341 */ | 1341 */ |
1342 FunctionSignature functionSignature; | 1342 FunctionSignature functionSignature; |
1343 | 1343 |
1344 ResolutionTypedefType computeType(Resolution resolution) { | 1344 ResolutionTypedefType computeType(Resolution resolution) { |
1345 if (thisTypeCache != null) return thisTypeCache; | 1345 if (thisTypeCache != null) return thisTypeCache; |
1346 Typedef node = parseNode(resolution.parsingContext); | 1346 Typedef node = parseNode(resolution.parsingContext); |
1347 setThisAndRawTypes(createTypeVariables(node.typeParameters)); | 1347 setThisAndRawTypes(createTypeVariables(node.templateParameters)); |
1348 ensureResolved(resolution); | 1348 ensureResolved(resolution); |
1349 return thisTypeCache; | 1349 return thisTypeCache; |
1350 } | 1350 } |
1351 | 1351 |
1352 void ensureResolved(Resolution resolution) { | 1352 void ensureResolved(Resolution resolution) { |
1353 if (resolutionState == STATE_NOT_STARTED) { | 1353 if (resolutionState == STATE_NOT_STARTED) { |
1354 resolution.resolveTypedef(this); | 1354 resolution.resolveTypedef(this); |
1355 } | 1355 } |
1356 } | 1356 } |
1357 | 1357 |
(...skipping 377 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1735 * kept to provide full information about parameter names through the mirror | 1735 * kept to provide full information about parameter names through the mirror |
1736 * system. | 1736 * system. |
1737 */ | 1737 */ |
1738 FunctionSignature _functionSignatureCache; | 1738 FunctionSignature _functionSignatureCache; |
1739 | 1739 |
1740 FormalElementX(ElementKind elementKind, FunctionTypedElement enclosingElement, | 1740 FormalElementX(ElementKind elementKind, FunctionTypedElement enclosingElement, |
1741 this.definitions, Identifier identifier) | 1741 this.definitions, Identifier identifier) |
1742 : this.identifier = identifier, | 1742 : this.identifier = identifier, |
1743 super(identifier.source, elementKind, enclosingElement); | 1743 super(identifier.source, elementKind, enclosingElement); |
1744 | 1744 |
| 1745 FormalElementX.unnamed(ElementKind elementKind, |
| 1746 FunctionTypedElement enclosingElement, |
| 1747 this.definitions) |
| 1748 : this.identifier = null, |
| 1749 super("<unnamed>", elementKind, enclosingElement); |
| 1750 |
| 1751 /// Whether this is an unnamed parameter in a Function type. |
| 1752 bool get isUnnamed => identifier == null; |
| 1753 |
1745 FunctionTypedElement get functionDeclaration => enclosingElement; | 1754 FunctionTypedElement get functionDeclaration => enclosingElement; |
1746 | 1755 |
1747 Modifiers get modifiers => definitions.modifiers; | 1756 Modifiers get modifiers => definitions.modifiers; |
1748 | 1757 |
1749 Token get position => identifier.getBeginToken(); | 1758 Token get position => identifier.getBeginToken(); |
1750 | 1759 |
1751 Node parseNode(ParsingContext parsing) => definitions; | 1760 Node parseNode(ParsingContext parsing) => definitions; |
1752 | 1761 |
1753 ResolutionDartType computeType(Resolution resolution) { | 1762 ResolutionDartType computeType(Resolution resolution) { |
1754 assert(invariant(this, type != null, | 1763 assert(invariant(this, type != null, |
(...skipping 1713 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3468 body = node.asFunctionExpression().body; | 3477 body = node.asFunctionExpression().body; |
3469 } | 3478 } |
3470 return new ParsedResolvedAst( | 3479 return new ParsedResolvedAst( |
3471 declaration, | 3480 declaration, |
3472 node, | 3481 node, |
3473 body, | 3482 body, |
3474 definingElement.treeElements, | 3483 definingElement.treeElements, |
3475 definingElement.compilationUnit.script.resourceUri); | 3484 definingElement.compilationUnit.script.resourceUri); |
3476 } | 3485 } |
3477 } | 3486 } |
OLD | NEW |