inconsistent_language_version_override 진단: 라이브러리와 다른 언어 버전 오버라이드
inconsistent_language_version_override 진단: 라이브러리와 다른 언어 버전 오버라이드
Dart 분석기가 만들어 내는 inconsistent_language_version_override 진단에 대한 설명이에요.
본문
라이브러리에서 사용하는 언어 버전과 part 파일의 언어 버전 오버라이드가 서로 다를 때 이 진단이 발생해요.
설명
part 파일(part of 지시어를 담고 있는 Dart 소스 파일)에, 그 part가 속한 라이브러리에 사용되는 언어 버전과 다른 언어 버전을 지정하는 언어 버전 오버라이드 주석이 있을 때 분석기는 이 진단을 만들어요.
예시
part.dart라는 part 파일이 다음과 같은 내용을 담고 있다고 해볼게요.
// @dart = 2.14
part of 'test.dart';
라이브러리의 part들은 정의하는 컴파일 유닛(compilation unit)과 같은 언어 버전이어야 하므로, 다음 코드는 이 진단을 만들어요.
// @dart = 2.15
part 'part.dart';
흔한 해결 방법
part 파일에서 언어 버전 오버라이드를 제거하면, 정의하는 컴파일 유닛과 같은 버전을 암묵적으로 사용하게 돼요.
part of 'test.dart';
필요하다면, 정의하는 컴파일 유닛의 언어 버전 오버라이드가 part 안의 코드에 맞도록 조정하거나, part 파일의 코드가 새 언어 버전과 일치하도록 마이그레이션해요.