invalid_use_of_do_not_submit_member 진단: 커밋하면 안 되는 멤버를 다른 곳에서 쓰고 있어요
invalid_use_of_do_not_submit_member 진단: 커밋하면 안 되는 멤버를 다른 곳에서 쓰고 있어요
Dart 분석기가 내보내는 진단에는 이름이 있어요. invalid_use_of_do_not_submit_member은 @doNotSubmit 애너테이션이 붙은 멤버가, 역시 @doNotSubmit가 붙은 멤버 선언 밖에서 참조될 때 분석기가 알려주는 진단이에요. 이 멤버들은 소스 컨트롤에 올리면 안 되는 용도로 쓰이거든요.
본문
설명
분석기는 @doNotSubmit 애너테이션이 붙은 멤버가, 역시 @doNotSubmit가 붙은 멤버 선언 밖에서 참조될 때 이 진단을 만들어요.
예시
우선 a.dart 파일에 다음과 같은 선언이 있다고 해 볼게요.
import 'package:meta/meta.dart';
@doNotSubmit
void emulateCrash() { /* ... */ }
다음 코드는 @doNotSubmit가 붙지 않은 멤버 밖에서 그 선언을 참조하고 있기 때문에 이 진단이 나와요.
import 'a.dart';
void f() {
emulateCrash();
}
흔한 해결 방법
대부분의 경우 로컬 테스트가 끝났다면, 그 멤버에 대한 참조를 제거하면 돼요.
그 멤버 위에 추가 기능을 만들고 있다면, 새로 추가한 멤버에도 @doNotSubmit를 붙여 주세요.
import 'package:meta/meta.dart';
import 'a.dart';
@doNotSubmit
void emulateCrashWithOtherFunctionality() {
emulateCrash();
// do other things.
}