Skip to main content

duplicate_pattern_assignment_variable

The variable '{0}' is already assigned in this pattern.

Description

#

The analyzer produces this diagnostic when a single pattern variable is assigned a value more than once in the same pattern assignment.

Example

#

The following code produces this diagnostic because the variable a is assigned twice in the pattern (a, a):

dart
int f((int, int) r) {
  int a;
  (a, a) = r;
  return a;
}

Common fixes

#

If you need to capture all of the values, then use a unique variable for each of the subpatterns being matched:

dart
int f((int, int) r) {
  int a, b;
  (a, b) = r;
  return a + b;
}

If some of the values don't need to be captured, then use a wildcard pattern _ to avoid having to bind the value to a variable:

dart
int f((int, int) r) {
  int a;
  (_, a) = r;
  return a;
}