invalid_use_of_internal_member 진단: internal 멤버는 자기 패키지 안에서만 쓸 수 있어요
invalid_use_of_internal_member 진단: internal 멤버는 자기 패키지 안에서만 쓸 수 있어요
Dart 분석기가 내보내는 진단에는 이름이 있어요. invalid_use_of_internal_member은 internal 애너테이션이 붙은 선언에 대한 참조가, 그 선언이 들어 있는 패키지 밖에서 발견될 때 분석기가 알려주는 진단이에요. internal 멤버는 패키지 내부에서만 쓰라고 만든 거랍니다.
본문
설명
분석기는 internal 애너테이션이 붙은 선언에 대한 참조가, 그 선언이 들어 있는 패키지 밖에서 발견될 때 이 진단을 만들어요.
예시
패키지 p에 internal 애너테이션이 붙은 선언을 담은 라이브러리가 있다고 해 볼게요.
import 'package:meta/meta.dart';
@internal
class C {}
다음 코드는 패키지 p 밖에서 쓰면 안 되는 클래스 C를 참조하고 있기 때문에 이 진단이 나와요.
import 'package:p/src/p.dart';
void f(C c) {}
흔한 해결 방법
internal 선언에 대한 참조를 제거하면 돼요.