6c757957db
DDC's codegen test copies those files to a local "gen" directory so that it can do stuff like splitting out the multitests before it compiles them to JS. I left all of that alone, so the rest of DDC's test infrastructure is unchanged. The very first step that builds the "gen" directory just copies from sdk/tests/..._strong/... instead and the rest is good to go. I did not move not_yet_strong_tests.dart somewhere more accessible yet because I'm not sure if kernel needs it or where it should go. I did not create any status files because DDC doesn't need them and there are no test suites for the new directories for the other platforms.
90 lines
2.4 KiB
Dart
90 lines
2.4 KiB
Dart
// Copyright (c) 2012, 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.
|
|
|
|
import "package:expect/expect.dart";
|
|
|
|
main() {
|
|
const f0 = 42;
|
|
const f1; /// 01: compile-time error
|
|
const int f2 = 87;
|
|
const int f3; /// 02: compile-time error
|
|
Expect.equals(42, f0);
|
|
Expect.equals(87, f2);
|
|
|
|
Expect.equals(42, F0);
|
|
Expect.equals(null, F1); /// 03: compile-time error
|
|
Expect.equals(87, F2);
|
|
Expect.equals(null, F3); /// 04: compile-time error
|
|
|
|
Expect.isTrue(P0 is Point);
|
|
Expect.isTrue(P1 is int); /// 05: compile-time error
|
|
Expect.isTrue(P2 is Point); /// 06: compile-time error
|
|
Expect.isTrue(P3 is int); /// 07: compile-time error
|
|
|
|
Expect.isTrue(A0 is int);
|
|
Expect.isTrue(A1 is int);
|
|
Expect.isTrue(A2 is int); /// 08: compile-time error
|
|
Expect.isTrue(A3 is int); /// 08: continued
|
|
|
|
Expect.isTrue(C0.X is C1);
|
|
Expect.isTrue(C0.X.x is C1); /// 09: compile-time error
|
|
|
|
Expect.equals("Hello 42", B2);
|
|
Expect.equals("42Hello", B3); /// 10: compile-time error
|
|
|
|
const cf1 = identical(const Point(1, 2), const Point(1, 2));
|
|
|
|
const cf2 = identical(const Point(1, 2), new Point(1, 2)); /// 11: compile-time error
|
|
|
|
var f4 = B4; /// 12: compile-time error
|
|
var f5 = B5;
|
|
}
|
|
|
|
const F0 = 42;
|
|
const F1; /// 03: continued
|
|
const int F2 = 87;
|
|
const int F3; /// 04: continued
|
|
|
|
class Point {
|
|
final x, y;
|
|
const Point(this.x, this.y);
|
|
operator +(int other) => x;
|
|
}
|
|
|
|
// Check that compile time expressions can include invocations of
|
|
// user-defined const constructors.
|
|
const P0 = const Point(0, 0);
|
|
const P1 = const Point(0, 0) + 1; /// 05: continued
|
|
const P2 = new Point(0, 0); /// 06: continued
|
|
const P3 = new Point(0, 0) + 1; /// 07: continued
|
|
|
|
// Check that we cannot have cyclic references in compile time
|
|
// expressions.
|
|
const A0 = 42;
|
|
const A1 = A0 + 1;
|
|
const A2 = A3 + 1; /// 08: continued
|
|
const A3 = A2 + 1; /// 08: continued
|
|
|
|
class C0 {
|
|
static const X = const C1();
|
|
}
|
|
|
|
class C1 {
|
|
const C1()
|
|
: x = C0.X /// 09: continued
|
|
;
|
|
final x = null;
|
|
}
|
|
|
|
// Check that sub-expressions of binary + are numeric.
|
|
const B0 = 42;
|
|
const B1 = "Hello";
|
|
const B2 = "$B1 $B0";
|
|
const B3 = B0 + B1; /// 10: continued
|
|
|
|
// Check identical.
|
|
|
|
const B4 = identical(1, new Point(1,2)); /// 12: compile-time error
|
|
const B5 = identical(1, const Point(1,2));
|