deprecated_export_use 진단: 간접적으로 가져온 이름이 더 이상 지원되지 않을 때
deprecated_export_use 진단: 간접적으로 가져온 이름이 더 이상 지원되지 않을 때
Dart 분석기가 내보내는 진단에는 이름이 있어요. deprecated_export_use는 어떤 라이브러리가 다른 라이브러리에서 이름을 가져왔는데, 그 라이브러리가 세 번째 라이브러리에서 그 이름을 내보내고 있되 앞으로는 내보내지 않겠다고 표시해 둔 경우 분석기가 알려주는 진단이에요. 즉, 폐기된 export를 통해서 이름을 가져온 것이 문제가 되는 거예요.
본문
설명
A 클래스를 정의하는 a.dart 라이브러리가 있다고 해 볼게요.
class A { }
그리고 b.dart 라이브러리가 a.dart를 내보내되, 그 export를 폐기된 것으로 표시해 두었다고 해요.
import 'a.dart';
@deprecated
export 'a.dart';
이런 상태에서 아래 코드를 보면, 클래스 A가 b.dart에서 어떤 미래 버전에는 더 이상 내보내지 않게 되기 때문에 이 진단이 나와요.
import 'b.dart';
A? a;
흔한 해결 방법
그 이름이 가져올 수 있는 다른 라이브러리에 있다면, 기존 import를 그 라이브러리로 바꾸거나(기존 import도 여전히 필요하면 그 정의하는 라이브러리의 import를 추가하면 돼요):
import 'a.dart';
A? a;
그 이름을 쓸 수 있는 곳이 마땅치 않다면, 라이브러리 작성자가 남긴 안내를 찾아보거나 직접 연락해 코드를 어떻게 고쳐야 할지 알아보는 게 좋아요.