불필요한 'this' 별칭

불필요한 'this' 별칭 (unnecessary_this_alias)

이 문서는 Dart 분석기(analyzer)가 만들어 내는 unnecessary_this_alias 진단(diagnostic)에 대해 설명해요. 지역 변수가 this로 초기화되고, 그 변수가 그냥 this를 써도 되는 방식으로만 사용될 때 분석기가 이 진단을 알려 줘요. 어떤 경우에 발생하는지, 어떻게 고치는지 함께 알아볼게요.

출처: unnecessary_this_alias

본문

설명

분석기는 지역 변수가 this로 초기화되었는데, 그 변수가 다시 할당된 적이 없고, 사용되는 방식이 전부 this만으로도 충분할 때 이 진단을 만들어 내요. 예를 들어 그 변수의 유일한 사용처가 this-promotion 기능을 활용해 this에 직접 수행할 수 있는 프로모션 검사라면 불필요하죠.

예시

다음 코드는 지역 변수 selfthis로 초기화되었고, 다시 할당된 적이 없으며, 그 유일한 사용처가 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 {}

더 알아보기