import 접두사가 로컬 선언에 가려짐
import 접두사가 로컬 선언에 가려짐 (prefix_shadowed_by_local_declaration)
이 문서는 Dart 분석기(analyzer)가 만들어 내는 prefix_shadowed_by_local_declaration 진단(diagnostic)에 대한 상세한 내용을 설명하는 문서예요. import 접두사(prefix)가 로컬 선언(local declaration)에 가려져(shadowed) 보이지 않는 상황에서 사용될 때 분석기가 이 진단을 알려 줘요. 어떤 상황에서 발생하고 어떻게 고치는지 함께 알아볼게요.
본문
진단 메시지
The prefix '{0}' can't be used here because it's shadowed by a local declaration.
접두사 '{0}'은(는) 로컬 선언에 가려져 있기 때문에 여기서 사용할 수 없어요.
설명
분석기는 import 접두사가 로컬 선언에 가려져 보이지 않는 상황에서 사용될 때 이 진단을 만들어 내요.
예시
다음 코드는 접두사 a가 클래스 Future에 접근하는 데 사용되지만, 매개변수 a에 가려져 보이지 않기 때문에 이 진단을 만들어 내요.
import 'dart:async' as a;
a.Future? f(int a) {
a.Future? x;
return x;
}
일반적인 해결 방법
접두사를 바꿔 주세요.
import 'dart:async' as p;
p.Future? f(int a) {
p.Future? x;
return x;
}
아니면 로컬 변수를 바꿔 주세요.
import 'dart:async' as a;
a.Future? f(int p) {
a.Future? x;
return x;
}
더 알아보기
- Dart 분석기 진단 목록에서 다른 진단들도 함께 살펴보세요.
- Dart의 import와 접두사 사용법에 대한 더 자세한 내용은 Dart 언어 투어 (Language tour)를 참고해요.