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