invalid_use_of_internal_member 진단: internal 멤버는 자기 패키지 안에서만 쓸 수 있어요

invalid_use_of_internal_member 진단: internal 멤버는 자기 패키지 안에서만 쓸 수 있어요

Dart 분석기가 내보내는 진단에는 이름이 있어요. invalid_use_of_internal_memberinternal 애너테이션이 붙은 선언에 대한 참조가, 그 선언이 들어 있는 패키지 밖에서 발견될 때 분석기가 알려주는 진단이에요. internal 멤버는 패키지 내부에서만 쓰라고 만든 거랍니다.

출처: invalid_use_of_internal_member

본문

설명

분석기는 internal 애너테이션이 붙은 선언에 대한 참조가, 그 선언이 들어 있는 패키지 밖에서 발견될 때 이 진단을 만들어요.

예시

패키지 pinternal 애너테이션이 붙은 선언을 담은 라이브러리가 있다고 해 볼게요.

import 'package:meta/meta.dart';

@internal
class C {}

다음 코드는 패키지 p 밖에서 쓰면 안 되는 클래스 C를 참조하고 있기 때문에 이 진단이 나와요.

import 'package:p/src/p.dart';

void f(C c) {}

흔한 해결 방법

internal 선언에 대한 참조를 제거하면 돼요.

더 알아보기