blob: eeb3986f1de7176bfc6ddd52acb385d580b2353c [file]
// Copyright (c) 2026, 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.
// Declaring parameters named `_` are allowed. Accessing `_` is valid in the
// body part of a primary constructor, or in any construct that accesses
// instance members of C/D/E/Ext, if there is an instance variable with the
// name `_`.
import 'package:expect/expect.dart';
class C(var int _) {
this {
Expect.equals(_, 1);
}
}
class C1(var int _, int _);
class C2(int _, var int _);
class C3(int _, var int _, int _);
class D(final int _) {
this {
Expect.equals(_, 1);
}
}
class D1(final int _, int _);
class D2(int _, final int _);
class D3(int _, final int _, int _);
class E(int _, int _) {}
enum E1(final int _) {
e(1);
}
enum Enum1(final int _, int _) {
e(1, 2);
}
enum Enum2(int _, final int _) {
e(1, 2);
}
enum Enum3(int _, final int _, int _) {
e(1, 2, 3);
}
extension type Ext(int _) {
this {
Expect.equals(_, 1);
}
}
void main() {
var c = C(1);
Expect.equals(c._, 1);
var c1 = C1(1, 2);
Expect.equals(c1._, 1);
var c2 = C2(1, 2);
Expect.equals(c2._, 2);
var c3 = C3(1, 2, 3);
Expect.equals(c3._, 2);
var d = D(1);
Expect.equals(d._, 1);
var d1 = D1(1, 2);
Expect.equals(d1._, 1);
var d2 = D2(1, 2);
Expect.equals(d2._, 2);
var d3 = D3(1, 2, 3);
Expect.equals(d3._, 2);
E(1, 2);
var e1 = E1.e;
Expect.equals(e1._, 1);
Expect.equals(Enum1.e._, 1);
Expect.equals(Enum2.e._, 2);
Expect.equals(Enum3.e._, 2);
var ext = Ext(1);
Expect.equals(ext._, 1);
}