implicit_call_tearoffs 린트: call 메서드를 암시적으로 때어낼 때
implicit_call_tearoffs 린트: call 메서드를 암시적으로 때어낼 때
Dart 분석기가 내보내는 린트(lint) 규칙에는 이름이 있어요. implicit_call_tearoffs는 call 메서드를 가진 객체를 함수 타입 변수에 할당하면서 call 메서드를 암시적으로 때어낼(tear off) 때 분석기가 알려주는 린트 규칙이에요. 명시적으로 .call을 붙여서 의도를 분명히 하는 게 좋아요.
본문
설명
분석기는 call 메서드를 가진 객체를 함수 타입 변수에 할당하면서 call 메서드를 암시적으로 때어낼 때 이 진단을 만들어요.
예시
다음 코드는 Callable의 인스턴스가 Function을 기대하는 함수에 전달되기 때문에 이 진단이 나와요.
class Callable {
void call() {}
}
void callIt(void Function() f) {
f();
}
void f() {
callIt(Callable());
}
흔한 해결 방법
call 메서드를 명시적으로 때어내요.
class Callable {
void call() {}
}
void callIt(void Function() f) {
f();
}
void f() {
callIt(Callable().call);
}