generic_method_type_instantiation_on_dynamic

generic_method_type_instantiation_on_dynamic

Dart 분석기(analyzer)가 만들어 내는 'generic_method_type_instantiation_on_dynamic' 진단에 대한 설명이에요. 타입이 dynamic인 수신자에서 메서드 tear-off에는 타입 인자를 붙일 수 없다는 규칙이에요.

출처: generic_method_type_instantiation_on_dynamic

본문

설명

분석기는 타입이 dynamic인 수신자에서 인스턴스 메서드를 tear-off할 때 그 tear-off에 타입 인자가 포함되어 있으면 이 진단을 만들어 내요. 분석기는 메서드가 타입 매개변수를 몇 개 가지는지, 혹은 아예 가지는지 알 수 없기 때문에 타입 인자가 올바른지 검증할 방법이 없어요. 그래서 타입 인자는 허용되지 않아요.

예시

다음 코드는 p의 타입이 dynamic이고 m의 tear-off에 타입 인자가 있기 때문에 이 진단이 발생해요:

void f(dynamic list) {
  list.fold<int>;
}

일반적인 수정 방법

dynamic보다 더 구체적인 타입을 쓸 수 있다면 수신자의 타입을 바꿔요:

void f(List<Object> list) {
  list.fold<int>;
}

더 구체적인 타입을 쓸 수 없다면 타입 인자를 제거해요:

void f(dynamic list) {
  list.cast;
}

더 알아보기