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 "package:expect/expect.dart"; | |
6 | |
7 main() { | 5 main() { |
8 Expect.equals("str", foo("str")); | 6 Expect.equals("str", foo("str")); |
9 } | 7 } |
10 | 8 |
11 foo(y) { | 9 foo(y) { |
12 var x = 3; | 10 var x = 3; |
13 for (int i = 0; i < 2; i++) { | 11 for (int i = 0; i < 2; i++) { |
14 // Make sure that we don't think that the type of x is necessarily | 12 // Make sure that we don't think that the type of x is necessarily |
15 // a number and optimize the x + y expression based on that. The | 13 // a number and optimize the x + y expression based on that. The |
16 // value of x changes later... | 14 // value of x changes later... |
17 if (i == 1) return bar(x + y); | 15 if (i == 1) return bar(x + y); |
18 x = new A(); | 16 x = new A(); |
19 } | 17 } |
20 } | 18 } |
21 | 19 |
22 bar(t) => t; | 20 bar(t) => t; |
23 | 21 |
24 class A { | 22 class A { |
25 A() {} | 23 A() {} |
26 operator +(x) => x; | 24 operator +(x) => x; |
27 } | 25 } |
OLD | NEW |