literal_only_boolean_expressions 진단: 부울 표현식이 상수 값으로 고정되는 경우
literal_only_boolean_expressions 진단: 부울 표현식이 상수 값으로 고정되는 경우
Dart 분석기가 if나 반복(loop) 문의 조건이 항상 true 또는 항상 false로 고정되어 있다는 걸 알려주는 진단이에요. 이렇게 상수로만 이뤄진 조건은 대부분 실수인 경우가 많아서, 조건이 잘못됐거나 혹은 불필요하게 조건을 평가하고 있는 코드를 찾는 데 도움이 돼요.
본문
설명
분석기는 if나 반복 문의 조건 값이 항상 true 또는 항상 false로 판명될 때 이 진단을 만들어요. 예외가 하나 있는데, 조건이 Boolean 리터럴 true인 while 루프는 진단을 만들지 않아요.
예시
다음 코드는 조건이 항상 true로 평가되기 때문에 이 진단이 나와요.
void f() {
if (true) {
print('true');
}
}
린트는 상수(constant)로만 이뤄진 표현식들의 일부를 평가해요. 그래서 다음 코드도 조건이 항상 false로 평가되어 이 진단이 나와요.
void g(int i) {
if (1 == 0 || 3 > 4) {
print('false');
}
}
흔한 해결 방법
조건이 잘못된 거라면 조건을 고쳐서 컴파일 타임에 값을 알 수 없게 만들어요.
void g(int i) {
if (i == 0 || i > 4) {
print('false');
}
}
조건이 올바른 거라면 조건을 평가하지 않도록 코드를 단순화해요.
void f() {
print('true');
}