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/resolution.dart' show Resolution, ParsingContext; | 8 import '../common/resolution.dart' show Resolution, ParsingContext; |
9 import '../compiler.dart' show Compiler; | 9 import '../compiler.dart' show Compiler; |
10 import '../constants/constant_constructors.dart'; | 10 import '../constants/constant_constructors.dart'; |
(...skipping 238 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
249 get isExternal => unsupported(); | 249 get isExternal => unsupported(); |
250 get constantConstructor => null; | 250 get constantConstructor => null; |
251 | 251 |
252 bool get isRedirectingGenerative => unsupported(); | 252 bool get isRedirectingGenerative => unsupported(); |
253 bool get isRedirectingFactory => unsupported(); | 253 bool get isRedirectingFactory => unsupported(); |
254 | 254 |
255 computeType(Resolution resolution) => unsupported(); | 255 computeType(Resolution resolution) => unsupported(); |
256 | 256 |
257 bool get hasFunctionSignature => false; | 257 bool get hasFunctionSignature => false; |
258 | 258 |
| 259 bool get hasEffectiveTarget => true; |
| 260 |
259 get effectiveTarget => this; | 261 get effectiveTarget => this; |
260 | 262 |
261 computeEffectiveTargetType(InterfaceType newType) => unsupported(); | 263 computeEffectiveTargetType(InterfaceType newType) => unsupported(); |
262 | 264 |
263 get definingConstructor => null; | 265 get definingConstructor => null; |
264 | 266 |
265 FunctionElement asFunctionElement() => this; | 267 FunctionElement asFunctionElement() => this; |
266 | 268 |
267 String get message { | 269 String get message { |
268 return MessageTemplate.TEMPLATES[messageKind] | 270 return MessageTemplate.TEMPLATES[messageKind] |
(...skipping 1923 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
2192 | 2194 |
2193 // TODO(johnniwinther): This should also return true for cyclic redirecting | 2195 // TODO(johnniwinther): This should also return true for cyclic redirecting |
2194 // generative constructors. | 2196 // generative constructors. |
2195 bool get isCyclicRedirection => effectiveTarget.isRedirectingFactory; | 2197 bool get isCyclicRedirection => effectiveTarget.isRedirectingFactory; |
2196 | 2198 |
2197 /// These fields are set by the post process queue when checking for cycles. | 2199 /// These fields are set by the post process queue when checking for cycles. |
2198 ConstructorElement effectiveTargetInternal; | 2200 ConstructorElement effectiveTargetInternal; |
2199 DartType _effectiveTargetType; | 2201 DartType _effectiveTargetType; |
2200 bool _isEffectiveTargetMalformed; | 2202 bool _isEffectiveTargetMalformed; |
2201 | 2203 |
| 2204 bool get hasEffectiveTarget => effectiveTargetInternal != null; |
| 2205 |
2202 void setEffectiveTarget(ConstructorElement target, DartType type, | 2206 void setEffectiveTarget(ConstructorElement target, DartType type, |
2203 {bool isMalformed: false}) { | 2207 {bool isMalformed: false}) { |
2204 assert(invariant(this, target != null, | 2208 assert(invariant(this, target != null, |
2205 message: 'No effective target provided for $this.')); | 2209 message: 'No effective target provided for $this.')); |
2206 assert(invariant(this, effectiveTargetInternal == null, | 2210 assert(invariant(this, effectiveTargetInternal == null, |
2207 message: 'Effective target has already been computed for $this.')); | 2211 message: 'Effective target has already been computed for $this.')); |
2208 effectiveTargetInternal = target; | 2212 effectiveTargetInternal = target; |
2209 _effectiveTargetType = type; | 2213 _effectiveTargetType = type; |
2210 _isEffectiveTargetMalformed = isMalformed; | 2214 _isEffectiveTargetMalformed = isMalformed; |
2211 } | 2215 } |
(...skipping 1072 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3284 body = node.asFunctionExpression().body; | 3288 body = node.asFunctionExpression().body; |
3285 } | 3289 } |
3286 return new ParsedResolvedAst( | 3290 return new ParsedResolvedAst( |
3287 declaration, | 3291 declaration, |
3288 node, | 3292 node, |
3289 body, | 3293 body, |
3290 definingElement.treeElements, | 3294 definingElement.treeElements, |
3291 definingElement.compilationUnit.script.resourceUri); | 3295 definingElement.compilationUnit.script.resourceUri); |
3292 } | 3296 } |
3293 } | 3297 } |
OLD | NEW |