extra_positional_arguments_could_be_named

extra_positional_arguments_could_be_named

위치 인자를 너무 많이 넘기긴 했지만, 선언된 이름 있는 매개변수(named parameter)를 쓰면 처리할 수 있을 때 이 진단이 발생해요. 넘치는 인자를 이름 있는 매개변수의 값으로 돌릴 수 있는지 살펴보는 게 좋아요.

출처: extra_positional_arguments_could_be_named

본문

설명

analyzer는 메서드나 함수 호출에 허용된 위치 인자보다 많은 위치 인자가 있지만, 해당 메서드나 함수가 이름 있는 매개변수를 정의하고 있을 때 이 진단을 내보내요.

예시

아래 코드는 f가 위치 매개변수 2개를 정의하고 있는데, 세 번째 인자에 쓸 수 있는 이름 있는 매개변수도 있어서 이 진단이 발생해요.

void f(int a, int b, {int? c}) {}
void g() {
  f(1, 2, 3);
}

흔한 해결 방법

일부 인자가 이름 있는 매개변수의 값이라면, 인자 앞에 이름을 붙여 주세요.

void f(int a, int b, {int? c}) {}
void g() {
  f(1, 2, c: 3);
}

그게 아니라면 위치 매개변수에 해당하지 않는 인자를 제거하면 돼요.

void f(int a, int b, {int? c}) {}
void g() {
  f(1, 2);
}

더 알아보기

  • 이름 있는 매개변수는 {int? c}처럼 중괄호로 감싸서 선언하고, 호출할 때 c: 3처럼 이름을 붙여 전달해요. 넘치는 인자가 이름 있는 매개변수로 쓰일 수 있는지 먼저 확인해 보세요.