Index: test/codegen/notnull.dart |
diff --git a/test/codegen/notnull.dart b/test/codegen/notnull.dart |
deleted file mode 100644 |
index f16e75046f16cdf84be0dd3947ca8224120a4b4a..0000000000000000000000000000000000000000 |
--- a/test/codegen/notnull.dart |
+++ /dev/null |
@@ -1,237 +0,0 @@ |
-// Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file |
-// for details. All rights reserved. Use of this source code is governed by a |
-// BSD-style license that can be found in the LICENSE file. |
- |
-library notnull; |
- |
-void intAssignments() { |
- var i = 0; |
- i &= 1; |
- i |= 1; |
- i ^= 1; |
- i >>= 1; |
- i <<= 1; |
- i -= 1; |
- i %= 1; |
- i += 1; |
- i ??= 1; |
- i *= 1; |
- i ~/= 1; |
- i++; |
- --i; |
- print(i + 1); |
- |
- int j = 1; |
- j = i < 10 ? 1 : 2; |
- print(j + 1); |
-} |
- |
-void doubleAssignments() { |
- var d = 0.0; |
- d /= 1; |
- print(d + 1); |
-} |
- |
-void boolAssignments() { |
- var b = true; |
- b != b; |
- print(b); |
-} |
- |
-void increments() { |
- int i = 1; |
- print(++i); |
- print(i++); |
- print(--i); |
- print(i--); |
- |
- int j; |
- j = 1; |
- print(++j); |
- print(j++); |
- print(--j); |
- print(j--); |
-} |
- |
-void conditionals([bool cond]) { |
- int nullable; |
- nullable = 1; |
- int nonNullable = 1; |
- int a = cond ? nullable : nullable; |
- int b = cond ? nullable : nonNullable; |
- int c = cond ? nonNullable : nonNullable; |
- int d = cond ? nonNullable : nullable; |
- print(a + b + c + d); |
-} |
- |
-void nullAwareOps() { |
- int nullable; |
- int nonNullable = 1; |
- int a = nullable ?? nullable; |
- int b = nullable ?? nonNullable; |
- int c = nonNullable ?? nonNullable; |
- int d = nonNullable ?? nullable; |
- print(a + b + c + d); |
- |
- var s = ""; |
- print(s?.length + 1); |
-} |
- |
-void nullableLocals(int param) { |
- print(param + 1); |
- |
- int i; |
- // We could detect that i is effectively non-nullable with flow analysis. |
- i = 1; |
- print(i + 1); |
- |
- int j = 1; |
- j = i == 1 ? 1 : null; |
- print(j + 1); |
-} |
- |
-void optParams([int x, int y = 1]) { |
- print(x + y); |
-} |
- |
-void namedParams({int x, int y: 1}) { |
- print(x + y); |
-} |
- |
-void forLoops(int length()) { |
- for (int i = 0; i < 10; i++) { |
- print(i + 1); |
- } |
- for (int i = 0; i < length(); i++) { |
- print(i + 1); |
- } |
- for (int i = 0, n = length(); i < n; i++) { |
- print(i + 1); |
- } |
- // TODO(ochafik): Special-case `int + 0` to provide a cheap way to coerce |
- // ints to notnull in the SDK (like asm.js's `x|0` pattern). |
- for (int i = 0, n = length() + 0; i < n; i++) { |
- print(i + 1); |
- } |
-} |
- |
-void nullableCycle() { |
- int x = 1; |
- int y = 2; |
- int z; |
- x = y; |
- y = z; |
- z = x; |
- print(x + y + z); |
- |
- int s; |
- s = s; |
- print(s + 1); |
-} |
- |
-void nonNullableCycle() { |
- int x = 1; |
- int y = 2; |
- int z = 3; |
- x = y; |
- y = z; |
- z = x; |
- print(x + y + z); |
- |
- int s = 1; |
- s = s; |
- print(s + 1); |
-} |
- |
-class Foo { |
- int intField; |
- var varField; |
- f(Foo o) { |
- print(1 + varField + 2); |
- while (varField < 10) varField++; |
- while (varField < 10) varField = varField + 1; |
- |
- print(1 + intField + 2); |
- while (intField < 10) intField++; |
- while (intField < 10) intField = intField + 1; |
- |
- print(1 + o.intField + 2); |
- while (o.intField < 10) o.intField++; |
- while (o.intField < 10) o.intField = o.intField + 1; |
- } |
-} |
- |
-int _foo() => 1; |
-calls() { |
- int a = 1; |
- int b = 1; |
- b = ((x) => x)(a); |
- print(b + 1); |
- |
- int c = _foo(); |
- print(c + 1); |
-} |
- |
-localEscapes() { |
- int a = 1; |
- var f = (x) => a = x; |
- |
- int b = 1; |
- g(x) => b = x; |
- |
- f(1); |
- g(1); |
- |
- print(a + b); |
-} |
- |
-controlFlow() { |
- for (int i, j;;) { |
- i = j = 1; |
- print(i + j + 1); |
- break; |
- } |
- try { |
- throw 1; |
- } catch (e) { |
- print(e + 1); |
- } |
- try { |
- (null as dynamic).foo(); |
- } catch (e, trace) { |
- print('${(e is String) ? e : e.toString()} at $trace'); |
- } |
-} |
- |
-cascadesOnNull() { |
- dynamic x = null; |
- print((x |
- ..toString() |
- ..runtimeType) |
- .hashCode); |
- |
- Object y = null; |
- print((y |
- ..toString() |
- ..runtimeType) |
- .hashCode); |
-} |
- |
-main() { |
- intAssignments(); |
- doubleAssignments(); |
- boolAssignments(); |
- nullableLocals(1); |
- optParams(1, 2); |
- namedParams(x: 1, y: 2); |
- forLoops(() => 10); |
- increments(); |
- conditionals(true); |
- calls(); |
- localEscapes(); |
- controlFlow(); |
- cascadesOnNull(); |
- |
- nullableCycle(); |
- nonNullableCycle(); |
-} |