unnecessary_await_in_return 린트 규칙: return에 불필요한 await 키워드 피하기
unnecessary_await_in_return 린트 규칙: return에 불필요한 await 키워드 피하기
unnecessary_await_in_return은 return 문에서 불필요한 await 키워드를 쓰고 있을 때 알려주는 린트 규칙이에요. 표현식의 타입이 함수의 반환 타입에 그대로 대입될 수 있는데 굳이 await를 붙이고 있다면, 그 await는 없어도 되는 경우가 많죠.
본문
설명
이 린트 규칙은 표현식의 타입이 함수의 반환 타입에 대입할 수 있는데, 그 표현식에 await를 붙여서 반환하는 상황을 피하라고 알려줘요.
⚠️ 한 가지 꼭 알아둬야 할 점이 있어요. 이 린트 규칙을 어디서나 (특히 리포트되지 않는 곳에서까지) 따르다 보면 예상치 못한 오류가 생길 수 있어서, 이 규칙은 deprecated(더 이상 사용 권장 안 함) 상태가 됐어요. analysis_options에서 이 린트를 포함하고 있다면 모두 제거하는 게 좋아요.
BAD:
Future<int> future;
Future<int> f1() async => await future;
Future<int> f2() async {
return await future;
}
GOOD:
Future<int> future;
Future<int> f1() => future;
Future<int> f2() {
return future;
}
반환 타입이 이미 Future<int>라서 return future;만 해도 충분해요. await를 붙이면 오히려 async 함수 안에서만 쓸 수 있어서 불필요하게 복잡해지죠.
활성화 방법
unnecessary_await_in_return 규칙을 활성화하려면 analysis_options.yaml 파일의 linter > rules 아래에 규칙을 추가하면 돼요.
linter:
rules:
- unnecessary_await_in_return
대신 YAML 맵 문법을 사용해서 린트 규칙을 설정하고 있다면, linter > rules 아래에 unnecessary_await_in_return: true를 추가하면 돼요.
linter:
rules:
unnecessary_await_in_return: true