| 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 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem; | 5 import '../common/codegen.dart' show CodegenRegistry, CodegenWorkItem; |
| 6 import '../common/names.dart' show Selectors; | 6 import '../common/names.dart' show Selectors; |
| 7 import '../common/tasks.dart' show CompilerTask; | 7 import '../common/tasks.dart' show CompilerTask; |
| 8 import '../compiler.dart' show Compiler; | 8 import '../compiler.dart' show Compiler; |
| 9 import '../constants/constant_system.dart'; | 9 import '../constants/constant_system.dart'; |
| 10 import '../constants/values.dart'; | 10 import '../constants/values.dart'; |
| (...skipping 796 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 807 HInstruction input = node.checkedInput; | 807 HInstruction input = node.checkedInput; |
| 808 // `null` always passes type conversion. | 808 // `null` always passes type conversion. |
| 809 if (input.isNull()) return input; | 809 if (input.isNull()) return input; |
| 810 // TODO(sra): We can statically check [input] if it is a constructor. | 810 // TODO(sra): We can statically check [input] if it is a constructor. |
| 811 // TODO(sra): We can statically check [input] if it is load from a field | 811 // TODO(sra): We can statically check [input] if it is load from a field |
| 812 // of the same ground type, or load from a field of a parameterized type | 812 // of the same ground type, or load from a field of a parameterized type |
| 813 // with the same receiver. | 813 // with the same receiver. |
| 814 return node; | 814 return node; |
| 815 } | 815 } |
| 816 if (type.isFunctionType) { | 816 if (type.isFunctionType) { |
| 817 HInstruction input = node.checkedInput; | 817 HInstruction input = node.checkedInput; |
| 818 // `null` always passes type conversion. | 818 // `null` always passes type conversion. |
| 819 if (input.isNull()) return input; | 819 if (input.isNull()) return input; |
| 820 // TODO(johnniwinther): Optimize function type conversions. | 820 // TODO(johnniwinther): Optimize function type conversions. |
| 821 // TODO(sra): We can statically check [input] if it is a closure getter. | 821 // TODO(sra): We can statically check [input] if it is a closure getter. |
| 822 return node; | 822 return node; |
| 823 } | 823 } |
| 824 } | 824 } |
| 825 return removeIfCheckAlwaysSucceeds(node, node.checkedType); | 825 return removeIfCheckAlwaysSucceeds(node, node.checkedType); |
| 826 } | 826 } |
| 827 | 827 |
| (...skipping 1909 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2737 | 2737 |
| 2738 keyedValues.forEach((receiver, values) { | 2738 keyedValues.forEach((receiver, values) { |
| 2739 result.keyedValues[receiver] = | 2739 result.keyedValues[receiver] = |
| 2740 new Map<HInstruction, HInstruction>.from(values); | 2740 new Map<HInstruction, HInstruction>.from(values); |
| 2741 }); | 2741 }); |
| 2742 | 2742 |
| 2743 result.nonEscapingReceivers.addAll(nonEscapingReceivers); | 2743 result.nonEscapingReceivers.addAll(nonEscapingReceivers); |
| 2744 return result; | 2744 return result; |
| 2745 } | 2745 } |
| 2746 } | 2746 } |
| OLD | NEW |