불필요한 'this' 별칭
불필요한 'this' 별칭 (unnecessary_this_alias)
이 문서는 Dart 분석기(analyzer)가 만들어 내는 unnecessary_this_alias 진단(diagnostic)에 대해 설명해요. 지역 변수가 this로 초기화되고, 그 변수가 그냥 this를 써도 되는 방식으로만 사용될 때 분석기가 이 진단을 알려 줘요. 어떤 경우에 발생하는지, 어떻게 고치는지 함께 알아볼게요.
본문
설명
분석기는 지역 변수가 this로 초기화되었는데, 그 변수가 다시 할당된 적이 없고, 사용되는 방식이 전부 this만으로도 충분할 때 이 진단을 만들어 내요. 예를 들어 그 변수의 유일한 사용처가 this-promotion 기능을 활용해 this에 직접 수행할 수 있는 프로모션 검사라면 불필요하죠.
예시
다음 코드는 지역 변수 self가 this로 초기화되었고, 다시 할당된 적이 없으며, 그 유일한 사용처가 this-promotion 기능을 이용해 this에 직접 수행할 수 있는 프로모션 검사이기 때문에 이 진단을 만들어 내요.
class C {
void m() {
var self = this;
if (self is D) {
// ...
}
}
}
class D extends C {}
일반적인 해결 방법
지역 변수를 제거하고 this를 직접 사용해 주세요.
class C {
void m() {
if (this is D) {
// ...
}
}
}
class D extends C {}
더 알아보기
- Dart 분석기 진단 목록에서 다른 진단들도 함께 살펴보세요.
- 타입 프로모션에 대한 자세한 내용은 Dart 공식 문서의 타입 프로모션 문서를 참고해요.