無効な_フィールド_名
レコードのフィールド名は、整数が位置フィールドのインデックスである場合に、ドル記号に続いて整数になることはできません。
レコードのフィールド名はプライベートにできません。
レコードのフィールド名は、`Object` のメンバーと同じ名前であることはできません。
説明
#アナライザーは、レコードリテラルまたはレコード型注釈のいずれかに無効な名前のフィールドがある場合に、この診断を生成します。名前が無効なのは、それが次のいずれかである場合です。
- プライベート(`_` で始まる)
- `Object` で定義されているメンバーと同じ名前
- 位置フィールドの名前と同じ(フィールドが指定された名前の位置フィールドである場合を除く)
例
#次のコードは、レコードリテラルに `Object` で定義されているメソッドである `toString` という名前のフィールドがあるため、この診断を生成します。
dart
var r = (a: 1, toString: 4);次のコードは、レコード型注釈に `Object` で定義されているゲッターである `hashCode` という名前のフィールドがあるため、この診断を生成します。
dart
void f(({int a, int hashCode}) r) {}次のコードは、レコードリテラルに `_a` という名前のプライベートフィールドがあるため、この診断を生成します。
dart
var r = (_a: 1, b: 2);次のコードは、レコード型注釈に `_a` という名前のプライベートフィールドがあるため、この診断を生成します。
dart
void f(({int _a, int b}) r) {}次のコードは、レコードリテラルに `1` という名前のフィールドがあり、それが別の位置パラメータの名前でもあるため、この診断を生成します。
dart
var r = (2, $1: 1);次のコードは、レコード型注釈に `1` という名前のフィールドがあり、それが別の位置パラメータの名前でもあるため、この診断を生成します。
dart
void f((int, String, {int $1}) r) {}一般的な修正
#フィールドの名前を変更する
dart
var r = (a: 1, d: 4);