| 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 1407 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1418       ConstantVariableMixin originVariable = origin; | 1418       ConstantVariableMixin originVariable = origin; | 
| 1419       originVariable.constant = value; | 1419       originVariable.constant = value; | 
| 1420       return; | 1420       return; | 
| 1421     } | 1421     } | 
| 1422     if (constantCache != null && | 1422     if (constantCache != null && | 
| 1423         constantCache.kind == ConstantExpressionKind.ERRONEOUS) { | 1423         constantCache.kind == ConstantExpressionKind.ERRONEOUS) { | 
| 1424       // TODO(johnniwinther): Find out why we sometimes compute a non-erroneous | 1424       // TODO(johnniwinther): Find out why we sometimes compute a non-erroneous | 
| 1425       // constant for a variable already known to be erroneous. | 1425       // constant for a variable already known to be erroneous. | 
| 1426       return; | 1426       return; | 
| 1427     } | 1427     } | 
| 1428     if (constantCache != null && constantCache != value) { | 1428     assert(invariant(this, constantCache == null || constantCache == value, | 
| 1429       // Allow setting the constant as erroneous. Constants computed during | 1429         message: "Constant has already been computed for $this. " | 
| 1430       // resolution are locally valid but might be effectively erroneous. For | 1430             "Existing constant: " | 
| 1431       // instance `a ? true : false` where a is `const a = m()`. Since `a` is | 1431             "${constantCache != null ? constantCache.toStructuredText() : ''}, " | 
| 1432       // declared to be constant, the conditional is assumed valid, but when | 1432             "New constant: ${value != null ? value.toStructuredText() : ''}.")); | 
| 1433       // computing the value we see that it isn't. |  | 
| 1434       // TODO(johnniwinther): Remove this exception when all constant |  | 
| 1435       // expressions are computed during resolution. |  | 
| 1436       assert(invariant(this, value.kind == ConstantExpressionKind.ERRONEOUS, |  | 
| 1437           message: "Constant has already been computed for $this. " |  | 
| 1438               "Existing constant: " |  | 
| 1439               "${constantCache != null ? constantCache.toStructuredText() : ''}" |  | 
| 1440               ", New constant: " |  | 
| 1441               "${value != null ? value.toStructuredText() : ''}.")); |  | 
| 1442     } |  | 
| 1443     constantCache = value; | 1433     constantCache = value; | 
| 1444   } | 1434   } | 
| 1445 } | 1435 } | 
| 1446 | 1436 | 
| 1447 abstract class VariableElementX extends ElementX | 1437 abstract class VariableElementX extends ElementX | 
| 1448     with AstElementMixin, ConstantVariableMixin | 1438     with AstElementMixin, ConstantVariableMixin | 
| 1449     implements VariableElement { | 1439     implements VariableElement { | 
| 1450   final Token token; | 1440   final Token token; | 
| 1451   final VariableList variables; | 1441   final VariableList variables; | 
| 1452   VariableDefinitions definitionsCache; | 1442   VariableDefinitions definitionsCache; | 
| (...skipping 1864 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3317       body = node.asFunctionExpression().body; | 3307       body = node.asFunctionExpression().body; | 
| 3318     } | 3308     } | 
| 3319     return new ParsedResolvedAst( | 3309     return new ParsedResolvedAst( | 
| 3320         declaration, | 3310         declaration, | 
| 3321         node, | 3311         node, | 
| 3322         body, | 3312         body, | 
| 3323         definingElement.treeElements, | 3313         definingElement.treeElements, | 
| 3324         definingElement.compilationUnit.script.resourceUri); | 3314         definingElement.compilationUnit.script.resourceUri); | 
| 3325   } | 3315   } | 
| 3326 } | 3316 } | 
| OLD | NEW | 
|---|