포함 파일이 자기 자신을 포함
포함 파일이 자기 자신을 포함 (recursive_include_file)
이 문서는 Dart 분석기(analyzer)가 내는 recursive_include_file 진단(diagnostic)을 설명하는 문서예요. 분석 옵션 파일(analysis options file)이 직접 또는 간접적으로 자기 자신을 include 하면 순환 참조(circular reference)가 생기는데요. 언제 발생하고 어떻게 고치는지 함께 알아볼게요.
본문
진단 메시지
The URI '{0}' included in '{1}' includes '{1}', creating a circular reference.
'{1}'에 포함된 URI '{0}'이(가) '{1}'을(를) 다시 포함하면서 순환 참조를 만들고 있어요.
설명
분석기는 분석 옵션 파일이 직접 또는 간접적으로 자기 자신을 include 할 때 이 진단을 만들어 내요. include가 서로를 계속 물고 돌면 어디서부터 해석해야 할지 알 수 없는 순환 고리가 생기거든요.
예시
다음 코드는 파일이 자기 자신을 직접 include 하기 때문에 이 진단을 만들어 내요.
// %uri="analysis_options.yaml"
include: analysis_options.yaml
shared_options.yaml이라는 파일에 다음과 같은 내용이 들어 있다고 해 볼게요.
// %uri="shared_options.yaml"
include: analysis_options.yaml
이때 다음 코드는 파일이 자기 자신을 간접적으로 include 하기 때문에 이 진단을 만들어 내요.
// %uri="analysis_options.yaml"
include: shared_options.yaml
일반적인 해결 방법
include 하는 파일들 중 적어도 하나를 바꿔서 순환 고리를 끊어 주세요.
더 알아보기
- Dart 분석기 진단 목록에서 다른 진단들도 함께 살펴보세요.
- 분석 옵션 파일에서 include를 어떻게 쓰는지는 Dart 공식 문서의 분석 옵션 문서를 참고해요.