| 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 1115 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1384 VariableDefinitions parseNode(Element element, ParsingContext parsing) { | 1386 VariableDefinitions parseNode(Element element, ParsingContext parsing) { |
| 1385 return definitions; | 1387 return definitions; |
| 1386 } | 1388 } |
| 1387 | 1389 |
| 1388 DartType computeType(Element element, Resolution resolution) => type; | 1390 DartType computeType(Element element, Resolution resolution) => type; |
| 1389 } | 1391 } |
| 1390 | 1392 |
| 1391 abstract class ConstantVariableMixin implements VariableElement { | 1393 abstract class ConstantVariableMixin implements VariableElement { |
| 1392 ConstantExpression constantCache; | 1394 ConstantExpression constantCache; |
| 1393 | 1395 |
| 1396 // TODO(johnniwinther): Update the on `constant = ...` when evaluation of |
| 1397 // constant expression can handle references to unanalyzed constant variables. |
| 1398 @override |
| 1399 bool get hasConstant => false; |
| 1400 |
| 1394 ConstantExpression get constant { | 1401 ConstantExpression get constant { |
| 1395 if (isPatch) { | 1402 if (isPatch) { |
| 1396 ConstantVariableMixin originVariable = origin; | 1403 ConstantVariableMixin originVariable = origin; |
| 1397 return originVariable.constant; | 1404 return originVariable.constant; |
| 1398 } | 1405 } |
| 1399 assert(invariant(this, !isConst || constantCache != null, | 1406 assert(invariant(this, !isConst || constantCache != null, |
| 1400 message: "Constant has not been computed for $this.")); | 1407 message: "Constant has not been computed for $this.")); |
| 1401 return constantCache; | 1408 return constantCache; |
| 1402 } | 1409 } |
| 1403 | 1410 |
| (...skipping 788 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2192 | 2199 |
| 2193 // TODO(johnniwinther): This should also return true for cyclic redirecting | 2200 // TODO(johnniwinther): This should also return true for cyclic redirecting |
| 2194 // generative constructors. | 2201 // generative constructors. |
| 2195 bool get isCyclicRedirection => effectiveTarget.isRedirectingFactory; | 2202 bool get isCyclicRedirection => effectiveTarget.isRedirectingFactory; |
| 2196 | 2203 |
| 2197 /// These fields are set by the post process queue when checking for cycles. | 2204 /// These fields are set by the post process queue when checking for cycles. |
| 2198 ConstructorElement effectiveTargetInternal; | 2205 ConstructorElement effectiveTargetInternal; |
| 2199 DartType _effectiveTargetType; | 2206 DartType _effectiveTargetType; |
| 2200 bool _isEffectiveTargetMalformed; | 2207 bool _isEffectiveTargetMalformed; |
| 2201 | 2208 |
| 2209 bool get hasEffectiveTarget => effectiveTargetInternal != null; |
| 2210 |
| 2202 void setEffectiveTarget(ConstructorElement target, DartType type, | 2211 void setEffectiveTarget(ConstructorElement target, DartType type, |
| 2203 {bool isMalformed: false}) { | 2212 {bool isMalformed: false}) { |
| 2204 assert(invariant(this, target != null, | 2213 assert(invariant(this, target != null, |
| 2205 message: 'No effective target provided for $this.')); | 2214 message: 'No effective target provided for $this.')); |
| 2206 assert(invariant(this, effectiveTargetInternal == null, | 2215 assert(invariant(this, effectiveTargetInternal == null, |
| 2207 message: 'Effective target has already been computed for $this.')); | 2216 message: 'Effective target has already been computed for $this.')); |
| 2208 effectiveTargetInternal = target; | 2217 effectiveTargetInternal = target; |
| 2209 _effectiveTargetType = type; | 2218 _effectiveTargetType = type; |
| 2210 _isEffectiveTargetMalformed = isMalformed; | 2219 _isEffectiveTargetMalformed = isMalformed; |
| 2211 } | 2220 } |
| (...skipping 1072 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3284 body = node.asFunctionExpression().body; | 3293 body = node.asFunctionExpression().body; |
| 3285 } | 3294 } |
| 3286 return new ParsedResolvedAst( | 3295 return new ParsedResolvedAst( |
| 3287 declaration, | 3296 declaration, |
| 3288 node, | 3297 node, |
| 3289 body, | 3298 body, |
| 3290 definingElement.treeElements, | 3299 definingElement.treeElements, |
| 3291 definingElement.compilationUnit.script.resourceUri); | 3300 definingElement.compilationUnit.script.resourceUri); |
| 3292 } | 3301 } |
| 3293 } | 3302 } |
| OLD | NEW |