|  | // 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); | 
|  | } |