shared_deferred_prefix 진단: 지연 import 프리픽스는 공유할 수 없어요

shared_deferred_prefix 진단: 지연 import 프리픽스는 공유할 수 없어요

지연(deferred) import의 프리픽스(prefix)는 다른 import 지시문에서 사용할 수 없어요.

출처: shared_deferred_prefix

본문

설명

분석기는 지연 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));

더 알아보기