shared_deferred_prefix 진단: 지연 import 프리픽스는 공유할 수 없어요
shared_deferred_prefix 진단: 지연 import 프리픽스는 공유할 수 없어요
지연(deferred) import의 프리픽스(prefix)는 다른 import 지시문에서 사용할 수 없어요.
본문
설명
분석기는 지연 import의 프리픽스가 다른 import(지연 여부와 상관없이)에서도 프리픽스로 사용될 때 이 진단을 만들어요. 지연 import의 프리픽스는 import한 라이브러리를 불러오는(load) 데 사용되기 때문에 다른 import와 공유할 수 없어요.
예시
다음 코드는 프리픽스 x가 지연 import의 프리픽스로 쓰이면서 동시에 다른 import에서도 쓰이기 때문에 이 진단을 만들게 돼요.
import 'dart:math' deferred as x;
import 'dart:convert' as x;
var y = x.json.encode(x.min(0, 1));
흔한 해결 방법
지연 import에 다른 이름을 쓸 수 있다면 그렇게 해요.
import 'dart:math' deferred as math;
import 'dart:convert' as x;
var y = x.json.encode(math.min(0, 1));
다른 import에 다른 이름을 쓸 수 있다면 그렇게 해요.
import 'dart:math' deferred as x;
import 'dart:convert' as convert;
var y = convert.json.encode(x.min(0, 1));