deprecated_extend 진단: 상속(extend)이 더 이상 지원되지 않을 때

deprecated_extend 진단: 상속(extend)이 더 이상 지원되지 않을 때

Dart 분석기가 내보내는 진단에는 이름이 있어요. deprecated_extend@Deprecated.extend로 표시된 클래스를 클래스 선언의 extends 절에서 사용했을 때 분석기가 알려주는 진단이에요. 이 어노테이션은 그 클래스를 상속하는 능력이 폐기되었고 곧 제거될 것임을 뜻해요.

출처: deprecated_extend

본문

설명

분석기는 @Deprecated.extend로 표시된 클래스를 클래스 선언의 extends 절에서 사용하면 이 진단을 만들어요.

이 어노테이션은 그 클래스를 상속(extend)하는 능력이 폐기되었고 곧 제거될 것임을 나타내요. 이 변경은 아마도 그 클래스를 interface, final, 또는 sealed로 표시하는 방식으로 강제될 가능성이 커요.

라이브러리 p@Deprecated.extend로 표시된 클래스를 정의한다고 해 볼게요.

@Deprecated.extend()
class C { }

그렇다면 p가 아닌 다른 어떤 라이브러리에서도 아래 코드는 이 진단이 나와요.

import 'package:p/p.dart';

class D extends C { }

흔한 해결 방법

Deprecation.extend 어노테이션에 적힌 안내가 있다면 그대로 따라가요. 그게 아니라면 extends 절을 제거해요.

class D { }

더 알아보기