invalid_modifier_on_setter 진단: setter에는 async 같은 한정자를 쓸 수 없어요

invalid_modifier_on_setter 진단: setter에는 async 같은 한정자를 쓸 수 없어요

Dart 분석기가 내보내는 진단에는 이름이 있어요. invalid_modifier_on_settersetter 본문(body)이 async, async*, sync* 중 하나의 한정자로 시작할 때 분석기가 알려주는 컴파일 타임 진단이에요. setter 본문은 항상 동기(synchronous)여야 해요.

출처: invalid_modifier_on_setter

본문

설명

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

더 알아보기