| // Copyright (c) 201, 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. |
| // VMOptions=--enable-asserts |
| // |
| // Dart test program testing assert statements. |
| |
| import "package:expect/expect.dart"; |
| |
| class S { |
| const S(); |
| const S.named(); |
| } |
| |
| class C extends S { |
| final int x; |
| C.cc01(int x) |
| : x = x, |
| super(); |
| C.cc02(int x) |
| : x = x, |
| super.named(); |
| C.cc03(this.x) : super(); |
| C.cc04(this.x) : super.named(); |
| C.cc05(int x) |
| : x = x, |
| assert(x == x), |
| super(); |
| C.cc06(int x) |
| : x = x, |
| assert(x == x), |
| super.named(); |
| C.cc07(this.x) |
| : assert(x == x), |
| super(); |
| C.cc08(this.x) |
| : assert(x == x), |
| super.named(); |
| C.cc09(int x) |
| : // |
| super(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| x = x; |
| //^ |
| // [cfe] Can't have initializers after 'super'. |
| C.cc10(int x) |
| : // |
| super.named(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| x = x; |
| //^ |
| // [cfe] Can't have initializers after 'super'. |
| C.cc11(this.x) |
| : // |
| super(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| assert(x == x); |
| // ^ |
| // [cfe] Can't have initializers after 'super'. |
| C.cc12(this.x) |
| : // |
| super.named(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| assert(x == x); |
| // ^ |
| // [cfe] Can't have initializers after 'super'. |
| C.cc13(int x) |
| : // |
| super(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| x = x, |
| //^ |
| // [cfe] Can't have initializers after 'super'. |
| assert(x == x); |
| // ^ |
| // [cfe] Can't have initializers after 'super'. |
| C.cc14(int x) |
| : // |
| super.named(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| x = x, |
| //^ |
| // [cfe] Can't have initializers after 'super'. |
| assert(x == x); |
| // ^ |
| // [cfe] Can't have initializers after 'super'. |
| C.cc15(int x) |
| : x = x, |
| super(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| assert(x == x); |
| // ^ |
| // [cfe] Can't have initializers after 'super'. |
| C.cc16(int x) |
| : x = x, |
| super.named(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| assert(x == x); |
| // ^ |
| // [cfe] Can't have initializers after 'super'. |
| |
| const C.cc17(int x) |
| : x = x, |
| super(); |
| const C.cc18(int x) |
| : x = x, |
| super.named(); |
| const C.cc19(this.x) : super(); |
| const C.cc20(this.x) : super.named(); |
| const C.cc21(int x) |
| : x = x, |
| assert(x == x), |
| super(); |
| const C.cc22(int x) |
| : x = x, |
| assert(x == x), |
| super.named(); |
| const C.cc23(this.x) |
| : assert(x == x), |
| super(); |
| const C.cc24(this.x) |
| : assert(x == x), |
| super.named(); |
| const C.cc25(int x) |
| : // |
| super(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| x = x; |
| //^ |
| // [cfe] Can't have initializers after 'super'. |
| const C.cc26(int x) |
| : // |
| super.named(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| x = x; |
| //^ |
| // [cfe] Can't have initializers after 'super'. |
| const C.cc27(this.x) |
| : // |
| super(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| assert(x == x); |
| // ^ |
| // [cfe] Can't have initializers after 'super'. |
| const C.cc28(this.x) |
| : // |
| super.named(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| assert(x == x); |
| // ^ |
| // [cfe] Can't have initializers after 'super'. |
| const C.cc29(int x) |
| : // |
| super(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| x = x, |
| //^ |
| // [cfe] Can't have initializers after 'super'. |
| assert(x == x); |
| // ^ |
| // [cfe] Can't have initializers after 'super'. |
| const C.cc30(int x) |
| : // |
| super.named(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| x = x, |
| //^ |
| // [cfe] Can't have initializers after 'super'. |
| assert(x == x); |
| // ^ |
| // [cfe] Can't have initializers after 'super'. |
| const C.cc31(int x) |
| : x = x, |
| super(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| assert(x == x); |
| // ^ |
| // [cfe] Can't have initializers after 'super'. |
| const C.cc32(int x) |
| : x = x, |
| super.named(), |
| // ^^^^^ |
| // [analyzer] COMPILE_TIME_ERROR.INVALID_SUPER_INVOCATION |
| assert(x == x); |
| // ^ |
| // [cfe] Can't have initializers after 'super'. |
| } |
| |
| main() { |
| // Ensure that erroneous constructors are actually needed. |
| new C.cc01(42); |
| new C.cc02(42); |
| new C.cc03(42); |
| new C.cc04(42); |
| new C.cc05(42); |
| new C.cc06(42); |
| new C.cc07(42); |
| new C.cc08(42); |
| new C.cc09(42); |
| new C.cc10(42); |
| new C.cc11(42); |
| new C.cc12(42); |
| new C.cc13(42); |
| new C.cc14(42); |
| new C.cc15(42); |
| new C.cc16(42); |
| |
| const C.cc17(42); |
| const C.cc18(42); |
| const C.cc19(42); |
| const C.cc20(42); |
| const C.cc21(42); |
| const C.cc22(42); |
| const C.cc23(42); |
| const C.cc24(42); |
| const C.cc25(42); |
| const C.cc26(42); |
| const C.cc27(42); |
| const C.cc28(42); |
| const C.cc29(42); |
| const C.cc30(42); |
| const C.cc31(42); |
| const C.cc32(42); |
| } |