extension type에서 super 키워드 사용

extension type에서 super 키워드 사용

Dart 분석기(analyzer)가 만들어 내는 이 진단은, extension type의 인스턴스 멤버에서 super를 사용했을 때 알려줘요. extension type은 슈퍼클래스가 없어서 호출할 상속된 멤버가 없거든요.

출처: super_in_extension_type

본문

진단 메시지는 "The 'super' keyword can't be used in an extension type because an extension type doesn't have a superclass." 즉 "extension type은 슈퍼클래스가 없기 때문에 extension type 안에서는 'super' 키워드를 쓸 수 없어요."라는 뜻이에요.

설명

extension type의 인스턴스 멤버에서 super를 사용하면 이 진단이 나와요. extension type은 슈퍼클래스가 없으니 호출할 상속된 멤버가 없죠.

예시

다음 코드는 extension type에서 super를 사용해서 이 진단이 나와요:

extension type E(String s) {
  void m() {
    super.m();
  }
}

해결 방법

super 호출을 바꾸거나 제거하면 돼요:

extension type E(String s) {
  void m() {
    s.toLowerCase();
  }
}

더 알아보기