invalid_modifier_on_constructor 진단: 생성자의 본문에는 async 같은 한정자를 쓸 수 없어요
invalid_modifier_on_constructor 진단: 생성자의 본문에는 async 같은 한정자를 쓸 수 없어요
Dart 분석기가 내보내는 진단에는 이름이 있어요. invalid_modifier_on_constructor는 생성자 본문(body)에 async, async*, sync* 같은 한정자가 붙어 있을 때 분석기가 알려주는 컴파일 타임 진단이에요. 생성자 본문은 항상 동기(synchronous)여야 해요.
본문
설명
분석기는 생성자의 본문이 async, async*, sync* 중 하나의 한정자로 시작할 때 이 진단을 만들어요. 생성자 본문은 동기여야 해요.
예시
다음 코드는 C의 생성자 본문이 async로 표시되어 있기 때문에 이 진단을 만들어요.
class C {
C() async {}
}
흔한 해결 방법
생성자를 동기로 만들 수 있다면 한정자를 제거해요.
class C {
C();
}
생성자를 동기로 만들 수 없다면, 대신 static 메서드를 사용해서 인스턴스를 만들어요.
class C {
C();
static Future<C> c() async {
return C();
}
}