invalid_use_of_do_not_submit_member 진단: 커밋하면 안 되는 멤버를 다른 곳에서 쓰고 있어요

invalid_use_of_do_not_submit_member 진단: 커밋하면 안 되는 멤버를 다른 곳에서 쓰고 있어요

Dart 분석기가 내보내는 진단에는 이름이 있어요. invalid_use_of_do_not_submit_member@doNotSubmit 애너테이션이 붙은 멤버가, 역시 @doNotSubmit가 붙은 멤버 선언 밖에서 참조될 때 분석기가 알려주는 진단이에요. 이 멤버들은 소스 컨트롤에 올리면 안 되는 용도로 쓰이거든요.

출처: invalid_use_of_do_not_submit_member

본문

설명

분석기는 @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.
}

더 알아보기