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 26 matching lines...) Expand all Loading... |
37 /// This includes instantiated types, types in is-checks and as-expressions | 37 /// This includes instantiated types, types in is-checks and as-expressions |
38 /// and in checked mode the types of all type-annotations. | 38 /// and in checked mode the types of all type-annotations. |
39 Iterable<DartType> get requiredTypes; | 39 Iterable<DartType> get requiredTypes; |
40 | 40 |
41 void forEachConstantNode(f(Node n, ConstantExpression c)); | 41 void forEachConstantNode(f(Node n, ConstantExpression c)); |
42 | 42 |
43 /// A set of additional dependencies. See [registerDependency] below. | 43 /// A set of additional dependencies. See [registerDependency] below. |
44 Iterable<Element> get otherDependencies; | 44 Iterable<Element> get otherDependencies; |
45 | 45 |
46 Element operator[](Node node); | 46 Element operator[](Node node); |
| 47 Map<Node, DartType> get typesCache; |
47 | 48 |
48 SendStructure getSendStructure(Send send); | 49 SendStructure getSendStructure(Send send); |
49 | 50 |
50 // TODO(johnniwinther): Investigate whether [Node] could be a [Send]. | 51 // TODO(johnniwinther): Investigate whether [Node] could be a [Send]. |
51 Selector getSelector(Node node); | 52 Selector getSelector(Node node); |
52 Selector getGetterSelectorInComplexSendSet(SendSet node); | 53 Selector getGetterSelectorInComplexSendSet(SendSet node); |
53 Selector getOperatorSelectorInComplexSendSet(SendSet node); | 54 Selector getOperatorSelectorInComplexSendSet(SendSet node); |
54 DartType getType(Node node); | 55 DartType getType(Node node); |
55 TypeMask getTypeMask(Node node); | 56 TypeMask getTypeMask(Node node); |
56 TypeMask getGetterTypeMaskInComplexSendSet(SendSet node); | 57 TypeMask getGetterTypeMaskInComplexSendSet(SendSet node); |
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
125 | 126 |
126 /// `true` if the [analyzedElement]'s source code contains a [TryStatement]. | 127 /// `true` if the [analyzedElement]'s source code contains a [TryStatement]. |
127 bool get containsTryStatement; | 128 bool get containsTryStatement; |
128 } | 129 } |
129 | 130 |
130 class TreeElementMapping extends TreeElements { | 131 class TreeElementMapping extends TreeElements { |
131 final AnalyzableElement analyzedElement; | 132 final AnalyzableElement analyzedElement; |
132 Map<Spannable, Selector> _selectors; | 133 Map<Spannable, Selector> _selectors; |
133 Map<Spannable, TypeMask> _typeMasks; | 134 Map<Spannable, TypeMask> _typeMasks; |
134 Map<Node, DartType> _types; | 135 Map<Node, DartType> _types; |
| 136 Map<Node, DartType> typesCache = <Node, DartType>{}; |
135 Setlet<Node> _superUses; | 137 Setlet<Node> _superUses; |
136 Setlet<Element> _otherDependencies; | 138 Setlet<Element> _otherDependencies; |
137 Map<Node, ConstantExpression> _constants; | 139 Map<Node, ConstantExpression> _constants; |
138 Map<VariableElement, List<Node>> _potentiallyMutated; | 140 Map<VariableElement, List<Node>> _potentiallyMutated; |
139 Map<Node, Map<VariableElement, List<Node>>> _potentiallyMutatedIn; | 141 Map<Node, Map<VariableElement, List<Node>>> _potentiallyMutatedIn; |
140 Map<VariableElement, List<Node>> _potentiallyMutatedInClosure; | 142 Map<VariableElement, List<Node>> _potentiallyMutatedInClosure; |
141 Map<Node, Map<VariableElement, List<Node>>> _accessedByClosureIn; | 143 Map<Node, Map<VariableElement, List<Node>>> _accessedByClosureIn; |
142 Setlet<Element> _elements; | 144 Setlet<Element> _elements; |
143 Maplet<Send, SendStructure> _sendStructureMap; | 145 Maplet<Send, SendStructure> _sendStructureMap; |
144 Setlet<DartType> _requiredTypes; | 146 Setlet<DartType> _requiredTypes; |
(...skipping 393 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
538 } | 540 } |
539 | 541 |
540 void setCurrentTypeMask(ForIn node, TypeMask mask) { | 542 void setCurrentTypeMask(ForIn node, TypeMask mask) { |
541 _setTypeMask(node.inToken, mask); | 543 _setTypeMask(node.inToken, mask); |
542 } | 544 } |
543 | 545 |
544 TypeMask getCurrentTypeMask(ForIn node) { | 546 TypeMask getCurrentTypeMask(ForIn node) { |
545 return _getTypeMask(node.inToken); | 547 return _getTypeMask(node.inToken); |
546 } | 548 } |
547 } | 549 } |
OLD | NEW |