super를 호출해야 합니다
super를 호출해야 합니다
This method overrides a method annotated as '@mustCallSuper' in '{0}', but doesn't invoke the overridden method.
이 진단은 @mustCallSuper로 표시된 메서드를 오버라이드하면서, 원래 메서드를 호출하지 않을 때 나타나요. 이런 메서드는 반드시 super 호출로 원래 동작을 이어가야 해요.
출처: must_call_super
본문
이 애널라이저 진단은 @mustCallSuper로 표시된 메서드를 오버라이드하는 메서드가, 필요한 대로 오버라이드된 메서드를 호출하지 않을 때 발생해요.
예시
다음 코드는 B의 메서드 m이 A의 오버라이드된 메서드 m을 호출하지 않기 때문에 이 진단이 나와요.
import 'package:meta/meta.dart';
class A {
@mustCallSuper
void m() {}
}
class B extends A {
@override
void m() {}
}
일반적인 해결 방법
오버라이드하는 메서드 안에서 오버라이드된 메서드를 호출해 주면 돼요.
import 'package:meta/meta.dart';
class A {
@mustCallSuper
void m() {}
}
class B extends A {
@override
void m() {
super.m();
}
}