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 part of type_graph_inferrer; | 5 part of type_graph_inferrer; |
6 | 6 |
7 // A set of selectors we know do not escape the elements inside the | 7 // A set of selectors we know do not escape the elements inside the |
8 // list. | 8 // list. |
9 Set<String> doesNotEscapeListSet = new Set<String>.from( | 9 Set<String> doesNotEscapeListSet = new Set<String>.from( |
10 const <String>[ | 10 const <String>[ |
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
179 | 179 |
180 void visitStringLiteralTypeInformation(StringLiteralTypeInformation info) {} | 180 void visitStringLiteralTypeInformation(StringLiteralTypeInformation info) {} |
181 | 181 |
182 void visitClosureTypeInformation(ClosureTypeInformation info) {} | 182 void visitClosureTypeInformation(ClosureTypeInformation info) {} |
183 | 183 |
184 void visitClosureCallSiteTypeInformation( | 184 void visitClosureCallSiteTypeInformation( |
185 ClosureCallSiteTypeInformation info) {} | 185 ClosureCallSiteTypeInformation info) {} |
186 | 186 |
187 visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) { | 187 visitStaticCallSiteTypeInformation(StaticCallSiteTypeInformation info) { |
188 Element called = info.calledElement; | 188 Element called = info.calledElement; |
189 if (called.isJsInterop) { | |
190 bailout('Used in JS Interop ${info.call}'); | |
sra1
2015/10/01 20:55:27
Seems harsh.
Describe what we want to happen here
Jacob
2015/10/02 20:08:15
Removed obsolete bailout hack.
This is a bailout I
| |
191 } | |
189 if (inferrer.types.getInferredTypeOf(called) == currentUser) { | 192 if (inferrer.types.getInferredTypeOf(called) == currentUser) { |
190 addNewEscapeInformation(info); | 193 addNewEscapeInformation(info); |
191 } | 194 } |
192 } | 195 } |
193 | 196 |
194 void analyzeStoredIntoList(ListTypeInformation list) { | 197 void analyzeStoredIntoList(ListTypeInformation list) { |
195 inferrer.analyzeListAndEnqueue(list); | 198 inferrer.analyzeListAndEnqueue(list); |
196 if (list.bailedOut) { | 199 if (list.bailedOut) { |
197 bailout('Stored in a list that bailed out'); | 200 bailout('Stored in a list that bailed out'); |
198 } else { | 201 } else { |
(...skipping 188 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
387 } | 390 } |
388 if (isParameterOfListAddingMethod(info.element) || | 391 if (isParameterOfListAddingMethod(info.element) || |
389 isParameterOfMapAddingMethod(info.element)) { | 392 isParameterOfMapAddingMethod(info.element)) { |
390 // These elements are being handled in | 393 // These elements are being handled in |
391 // [visitDynamicCallSiteTypeInformation]. | 394 // [visitDynamicCallSiteTypeInformation]. |
392 return; | 395 return; |
393 } | 396 } |
394 addNewEscapeInformation(info); | 397 addNewEscapeInformation(info); |
395 } | 398 } |
396 } | 399 } |
OLD | NEW |