blob: 5d88eb3a1fd6e8b748a16b3cf3fbcf0d4ee7414b [file] [log] [blame]
// Copyright (c) 2021, 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.
class S1 {
int s;
S1([int x = 0]) : s = x - 1;
}
class C1 extends S1 {
int c;
C1([super.x]) : c = x + 1; // Ok.
}
class S2 {
int s;
S2({int x = 0}) : s = x - 1;
}
class C2 extends S2 {
int c;
C2({super.x}) : c = x + 1; // Ok.
}
class S3 {
int s;
S3([int x = 0]) : s = x - 1;
}
class C3 extends S3 {
int c;
C3([super.x = 42]) : c = x + 1; // Ok.
}
class S4 {
int s;
S4({int x = 0}) : s = x - 1;
}
class C4 extends S4 {
int c;
C4({super.x = 42}) : c = x + 1; // Ok.
}
class S5 {
num a;
S5([num x = 3.14]) : a = x - 1;
}
class C5 extends S5 {
C5([int super.x]); // Error.
}
class S6 {
num? a;
S6([num? x = 3.14]) : a = x;
}
class C6 extends S6 {
int? b;
C6([int? super.x]); // Ok.
}
class D6 extends C6 {
D6([int super.x]); // Error
}
class S7 {
int s;
S7([int x = 0]) : s = x - 1;
}
class C7 extends S7 {
int c;
C7([super.x]) : c = x + 1;
}
class CC7 extends C7 {
int cc;
CC7([super.x]) : cc = x * 1;
}
class S8 {
int s;
S8([int x = 0]) : s = x - 1;
}
class CC8 extends C8 {
int cc;
CC8([super.x]) : cc = x * 1;
}
class C8 extends S8 {
int c;
C8([super.x]) : c = x + 1;
}
class CC9 extends C9 {
int cc;
CC9([super.x]) : cc = x * 1;
}
class C9 extends S9 {
int c;
C9([super.x]) : c = x + 1;
}
class S9 {
int s;
S9([int x = 0]) : s = x - 1;
}
class Ap {
Ap([num x = 3.14]);
}
class Bp extends Ap {
Bp([int super.x]); // Error.
Bp.req(int super.x); // Ok.
}
class An {
An({num x = 3.14});
}
class Bn extends An {
Bn({int super.x}); // Error.
Bn.req({required int super.x}); // Ok.
}
main() {}