avoid_bool_literals_in_conditional_expressions
avoid_bool_literals_in_conditional_expressions
Dart 분석기(analyzer)가 만들어 내는 'avoid_bool_literals_in_conditional_expressions' 진단에 대한 설명이에요. bool 리터럴이 들어간 삼항(조건) 표현식을 단순화할 수 있다는 규칙이에요.
본문
설명
분석기는 삼항(조건) 표현식이 bool 리터럴을 사용하면서 두 분기가 모두 bool일 때 이 진단을 만들어 내요. 이런 표현식은 &&나 ||를 써서 단순화할 수 있어요.
예시
다음 코드는 then 분기가 bool 리터럴 true이기 때문에 이 진단이 발생해요:
bool f(bool a, bool b) => a ? true : b;
다음 코드는 else 분기가 bool 리터럴 false이기 때문에 이 진단이 발생해요:
bool f(bool a, bool b) => a ? b : false;
일반적인 수정 방법
삼항 표현식을 이에 해당하는 논리 표현식으로 바꿔요. then 분기가 bool 리터럴이라면 다음 중 하나로 교체해요:
bool f(bool a, bool b) => a || b; // replaces: a ? true : b
bool g(bool a, bool b) => !a && b; // replaces: a ? false : b
else 분기가 bool 리터럴이라면 다음 중 하나로 교체해요:
bool f(bool a, bool b) => !a || b; // replaces: a ? b : true
bool g(bool a, bool b) => a && b; // replaces: a ? b : false