타입이 추론되지 않는 파라미터

타입이 추론되지 않는 파라미터 (inference_failure_on_untyped_parameter)

함수의 파라미터에 타입도 안 붙였는데, 동시에 그 타입을 추론할 수도 없는 상황이 있죠. 이 진단은 바로 타입을 추론할 수 없는 파라미터가 있을 때 분석기가 알려주는 진단이에요.

출처: inference_failure_on_untyped_parameter

본문

설명

분석기는 다음 조건이 모두 맞을 때 이 진단을 만들어요.

  • 분석 옵션 파일에서 언어 옵션 strict-inference가 켜져 있고,
  • 형식 파라미터(formal parameter) 선언에 타입이 없으며,
  • 그 파라미터의 타입을 추론할 수 없을 때요.

참고로 메서드의 파라미터는, 상속받은 메서드를 오버라이드하는 경우라면 타입을 추론할 수 있어요. 그래서 이 진단은 그런 경우에는 나오지 않아요.

예시

먼저 분석 옵션 파일에 strict-inference를 켜 둔 다음에요.

analyzer:
  language:
    strict-inference: true

아래 코드는 형식 파라미터 p에 명시적 타입도 없고 타입을 추론할 수도 없어서 이 진단이 나와요.

void f(p) => print(p);

흔한 해결 방법

명시적인 타입을 붙여 주면 돼요.

void f(int p) => print(p);

더 알아보기