blob: ca84024c4a2f89ab4572b6b0b4c50ef2cdc5a71c [file] [log] [blame]
// Copyright (c) 2025, 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.
// Using `new` to declare constructors.
// SharedOptions=--enable-experiment=primary-constructors
import "package:expect/expect.dart";
class C1 {
int x;
new() : x = 1; // Equivalent to `C1() : x = 1;`
new named() : x = 1; // Equivalent to `C1.named() : x = 1;`
}
class C2 {
int x;
new() : x = 1 {} // Equivalent to `C1() : x = 1 {}`
new named() : x = 1 {}// Equivalent to `C1.named() : x = 1 {}`
}
class C3 {
final int x;
const new(this.x); // Equivalent to `const C2(this.x);`
const new named(this.x); // Equivalent to `const C2.named(this.x);`
}
void main() {
Expect.equals(1, C1().x);
Expect.equals(1, C1.named().x);
Expect.equals(1, C2().x);
Expect.equals(1, C2.named().x);
Expect.equals(1, C3(1).x);
Expect.equals(1, C3.named(1).x);
}