avoid_renaming_method_parameters 린트 규칙: 오버라이드 메서드의 매개변수 이름을 바꾸지 맙시다

avoid_renaming_method_parameters 린트 규칙: 오버라이드 메서드의 매개변수 이름을 바꾸지 맙시다

avoid_renaming_method_parameters오버라이드한 메서드의 매개변수 이름을 바꾸지 말아 달라고 알려주는 Dart 린트(lint) 규칙이에요. 이름 그대로 단순해 보이지만, 문서 생성 단계에서 문제를 일으킬 수 있어서 꼭 지켜줘야 하는 규칙이랍니다.

출처: avoid_renaming_method_parameters

본문

설명

오버라이드하는 메서드는 자기만의 문서 주석(doc comment)이 없다면, dart doc이 문서를 만들 때 오버라이드된 메서드의 주석을 그대로 물려받아요. 그런데 이때 상속받은 주석 속에 매개변수 이름(대괄호로 감싼 것)이 들어 있다면, dart doc이 그 이름을 제대로 링크해 주지 못해요. 그래서 매개변수 이름까지 바꿔버리면 문서의 링크가 깨질 수 있답니다.

나쁜 예시

abstract class A {
  m(a);
}

abstract class B extends A {
  m(b);
}

위처럼 매개변수 이름을 a에서 b로 바꿔버리면, 물려받은 주석 안에 있는 [a] 같은 참조를 제대로 연결할 수 없어요.

좋은 예시

abstract class A {
  m(a);
}

abstract class B extends A {
  m(a);
}

오버라이드하는 메서드에서도 매개변수 이름을 원래 그대로 유지해야 해요.

규칙 활성화하기

avoid_renaming_method_parameters 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 추가해요:

linter:
  rules:
    - avoid_renaming_method_parameters

혹시 YAML 맵(map) 문법으로 린트 규칙을 설정한다면, linter > rules 아래에 avoid_renaming_method_parameters: true를 넣으면 돼요:

linter:
  rules:
    avoid_renaming_method_parameters: true

더 알아보기