| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 dart2js.resolution.tree_elements; | 5 library dart2js.resolution.tree_elements; |
| 6 | 6 |
| 7 import '../constants/expressions.dart'; | 7 import '../constants/expressions.dart'; |
| 8 import '../dart_types.dart'; | 8 import '../dart_types.dart'; |
| 9 import '../diagnostics/invariant.dart' show | 9 import '../diagnostics/invariant.dart' show |
| 10 invariant; | 10 invariant; |
| (...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 64 Selector getMoveNextSelector(ForIn node); | 64 Selector getMoveNextSelector(ForIn node); |
| 65 Selector getCurrentSelector(ForIn node); | 65 Selector getCurrentSelector(ForIn node); |
| 66 TypeMask getIteratorTypeMask(ForIn node); | 66 TypeMask getIteratorTypeMask(ForIn node); |
| 67 TypeMask getMoveNextTypeMask(ForIn node); | 67 TypeMask getMoveNextTypeMask(ForIn node); |
| 68 TypeMask getCurrentTypeMask(ForIn node); | 68 TypeMask getCurrentTypeMask(ForIn node); |
| 69 void setIteratorTypeMask(ForIn node, TypeMask mask); | 69 void setIteratorTypeMask(ForIn node, TypeMask mask); |
| 70 void setMoveNextTypeMask(ForIn node, TypeMask mask); | 70 void setMoveNextTypeMask(ForIn node, TypeMask mask); |
| 71 void setCurrentTypeMask(ForIn node, TypeMask mask); | 71 void setCurrentTypeMask(ForIn node, TypeMask mask); |
| 72 void setConstant(Node node, ConstantExpression constant); | 72 void setConstant(Node node, ConstantExpression constant); |
| 73 ConstantExpression getConstant(Node node); | 73 ConstantExpression getConstant(Node node); |
| 74 bool isAssert(Send send); | |
| 75 | 74 |
| 76 /// Returns the [FunctionElement] defined by [node]. | 75 /// Returns the [FunctionElement] defined by [node]. |
| 77 FunctionElement getFunctionDefinition(FunctionExpression node); | 76 FunctionElement getFunctionDefinition(FunctionExpression node); |
| 78 | 77 |
| 79 /// Returns target constructor for the redirecting factory body [node]. | 78 /// Returns target constructor for the redirecting factory body [node]. |
| 80 ConstructorElement getRedirectingTargetConstructor( | 79 ConstructorElement getRedirectingTargetConstructor( |
| 81 RedirectingFactoryBody node); | 80 RedirectingFactoryBody node); |
| 82 | 81 |
| 83 /** | 82 /** |
| 84 * Returns [:true:] if [node] is a type literal. | 83 * Returns [:true:] if [node] is a type literal. |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 130 Map<Spannable, TypeMask> _typeMasks; | 129 Map<Spannable, TypeMask> _typeMasks; |
| 131 Map<Node, DartType> _types; | 130 Map<Node, DartType> _types; |
| 132 Setlet<Node> _superUses; | 131 Setlet<Node> _superUses; |
| 133 Setlet<Element> _otherDependencies; | 132 Setlet<Element> _otherDependencies; |
| 134 Map<Node, ConstantExpression> _constants; | 133 Map<Node, ConstantExpression> _constants; |
| 135 Map<VariableElement, List<Node>> _potentiallyMutated; | 134 Map<VariableElement, List<Node>> _potentiallyMutated; |
| 136 Map<Node, Map<VariableElement, List<Node>>> _potentiallyMutatedIn; | 135 Map<Node, Map<VariableElement, List<Node>>> _potentiallyMutatedIn; |
| 137 Map<VariableElement, List<Node>> _potentiallyMutatedInClosure; | 136 Map<VariableElement, List<Node>> _potentiallyMutatedInClosure; |
| 138 Map<Node, Map<VariableElement, List<Node>>> _accessedByClosureIn; | 137 Map<Node, Map<VariableElement, List<Node>>> _accessedByClosureIn; |
| 139 Setlet<Element> _elements; | 138 Setlet<Element> _elements; |
| 140 Setlet<Send> _asserts; | |
| 141 Maplet<Send, SendStructure> _sendStructureMap; | 139 Maplet<Send, SendStructure> _sendStructureMap; |
| 142 Setlet<DartType> _requiredTypes; | 140 Setlet<DartType> _requiredTypes; |
| 143 | 141 |
| 144 /// Map from nodes to the targets they define. | 142 /// Map from nodes to the targets they define. |
| 145 Map<Node, JumpTarget> _definedTargets; | 143 Map<Node, JumpTarget> _definedTargets; |
| 146 | 144 |
| 147 /// Map from goto statements to their targets. | 145 /// Map from goto statements to their targets. |
| 148 Map<GotoStatement, JumpTarget> _usedTargets; | 146 Map<GotoStatement, JumpTarget> _usedTargets; |
| 149 | 147 |
| 150 /// Map from labels to their label definition. | 148 /// Map from labels to their label definition. |
| (...skipping 250 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 401 Iterable<Element> get allElements { | 399 Iterable<Element> get allElements { |
| 402 return _elements != null ? _elements : const <Element>[]; | 400 return _elements != null ? _elements : const <Element>[]; |
| 403 } | 401 } |
| 404 | 402 |
| 405 void forEachConstantNode(f(Node n, ConstantExpression c)) { | 403 void forEachConstantNode(f(Node n, ConstantExpression c)) { |
| 406 if (_constants != null) { | 404 if (_constants != null) { |
| 407 _constants.forEach(f); | 405 _constants.forEach(f); |
| 408 } | 406 } |
| 409 } | 407 } |
| 410 | 408 |
| 411 void setAssert(Send node) { | |
| 412 if (_asserts == null) { | |
| 413 _asserts = new Setlet<Send>(); | |
| 414 } | |
| 415 _asserts.add(node); | |
| 416 } | |
| 417 | |
| 418 bool isAssert(Send node) { | |
| 419 return _asserts != null && _asserts.contains(node); | |
| 420 } | |
| 421 | |
| 422 FunctionElement getFunctionDefinition(FunctionExpression node) { | 409 FunctionElement getFunctionDefinition(FunctionExpression node) { |
| 423 return this[node]; | 410 return this[node]; |
| 424 } | 411 } |
| 425 | 412 |
| 426 ConstructorElement getRedirectingTargetConstructor( | 413 ConstructorElement getRedirectingTargetConstructor( |
| 427 RedirectingFactoryBody node) { | 414 RedirectingFactoryBody node) { |
| 428 return this[node]; | 415 return this[node]; |
| 429 } | 416 } |
| 430 | 417 |
| 431 void defineTarget(Node node, JumpTarget target) { | 418 void defineTarget(Node node, JumpTarget target) { |
| (...skipping 114 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 546 } | 533 } |
| 547 | 534 |
| 548 void setCurrentTypeMask(ForIn node, TypeMask mask) { | 535 void setCurrentTypeMask(ForIn node, TypeMask mask) { |
| 549 _setTypeMask(node.inToken, mask); | 536 _setTypeMask(node.inToken, mask); |
| 550 } | 537 } |
| 551 | 538 |
| 552 TypeMask getCurrentTypeMask(ForIn node) { | 539 TypeMask getCurrentTypeMask(ForIn node) { |
| 553 return _getTypeMask(node.inToken); | 540 return _getTypeMask(node.inToken); |
| 554 } | 541 } |
| 555 } | 542 } |
| OLD | NEW |