Skip to main content

avoid-mixing-named-and-positional-fields

added in: 1.5.0
Dart 3.0+

Warns when a record declaration contains both named and positional fields.

Example

❌ Bad:

final record = ('hello',);
final record = ('hello', hi: 'world'); // LINT

class MyClass {
final (String, {int named}) field; // LINT

const MyClass(this.field);

(int, {int named}) calculate() => (1, named: 0); // LINT
}

✅ Good:

final record = ('hello',);
final record = (first: 'hello', second: 'world');

class MyClass {
final ({String value, int named}) field;

const MyClass(this.field);

(int, int) calculate() => (1, 0);
}