| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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 types; | 5 library types; |
| 6 | 6 |
| 7 import '../closure.dart' show SynthesizedCallMethodElementX; | 7 import '../closure.dart' show SynthesizedCallMethodElementX; |
| 8 import '../common.dart' show invariant; | 8 import '../common.dart' show invariant; |
| 9 import '../common/tasks.dart' show CompilerTask; | 9 import '../common/tasks.dart' show CompilerTask; |
| 10 import '../compiler.dart' show Compiler; | 10 import '../compiler.dart' show Compiler; |
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 121 /// a single element. | 121 /// a single element. |
| 122 class GlobalTypeInferenceElementData { | 122 class GlobalTypeInferenceElementData { |
| 123 Map<Object, TypeMask> _typeMasks; | 123 Map<Object, TypeMask> _typeMasks; |
| 124 | 124 |
| 125 TypeMask _get(Object node) => _typeMasks != null ? _typeMasks[node] : null; | 125 TypeMask _get(Object node) => _typeMasks != null ? _typeMasks[node] : null; |
| 126 void _set(Object node, TypeMask mask) { | 126 void _set(Object node, TypeMask mask) { |
| 127 _typeMasks ??= new Maplet<Object, TypeMask>(); | 127 _typeMasks ??= new Maplet<Object, TypeMask>(); |
| 128 _typeMasks[node] = mask; | 128 _typeMasks[node] = mask; |
| 129 } | 129 } |
| 130 | 130 |
| 131 TypeMask typeOfSend(Node node) => _get(node); | 131 TypeMask typeOfSend(Send node) => _get(node); |
| 132 TypeMask typeOfGetter(SendSet node) => _get(node.selector); | 132 TypeMask typeOfGetter(SendSet node) => _get(node.selector); |
| 133 TypeMask typeOfOperator(SendSet node) => _get(node.assignmentOperator); | 133 TypeMask typeOfOperator(SendSet node) => _get(node.assignmentOperator); |
| 134 | 134 |
| 135 void setTypeMask(Node node, TypeMask mask) { | 135 void setTypeMask(Send node, TypeMask mask) { |
| 136 _set(node, mask); | 136 _set(node, mask); |
| 137 } | 137 } |
| 138 | 138 |
| 139 void setGetterTypeMaskInComplexSendSet(SendSet node, TypeMask mask) { | 139 void setGetterTypeMaskInComplexSendSet(SendSet node, TypeMask mask) { |
| 140 _set(node.selector, mask); | 140 _set(node.selector, mask); |
| 141 } | 141 } |
| 142 | 142 |
| 143 void setOperatorTypeMaskInComplexSendSet(SendSet node, TypeMask mask) { | 143 void setOperatorTypeMaskInComplexSendSet(SendSet node, TypeMask mask) { |
| 144 _set(node.assignmentOperator, mask); | 144 _set(node.assignmentOperator, mask); |
| 145 } | 145 } |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 257 measure(() { | 257 measure(() { |
| 258 typesInferrerInternal ??= | 258 typesInferrerInternal ??= |
| 259 new TypeGraphInferrer(compiler, closedWorld, closedWorldRefiner); | 259 new TypeGraphInferrer(compiler, closedWorld, closedWorldRefiner); |
| 260 typesInferrerInternal.analyzeMain(mainElement); | 260 typesInferrerInternal.analyzeMain(mainElement); |
| 261 typesInferrerInternal.clear(); | 261 typesInferrerInternal.clear(); |
| 262 results = new GlobalTypeInferenceResults(typesInferrerInternal, compiler, | 262 results = new GlobalTypeInferenceResults(typesInferrerInternal, compiler, |
| 263 closedWorld, typesInferrerInternal.inferrer.types); | 263 closedWorld, typesInferrerInternal.inferrer.types); |
| 264 }); | 264 }); |
| 265 } | 265 } |
| 266 } | 266 } |
| OLD | NEW |