跳到主要内容

shared_deferred_prefix

延迟导入的前缀不能用于其他导入指令。

描述

#

当延迟导入中的前缀也被用作其他导入(无论是否延迟)的前缀时,分析器会产生此诊断。延迟导入中的前缀不能与其他导入共享,因为该前缀用于加载导入的库。

示例

#

以下代码会产生此诊断,因为前缀 x 被用作延迟导入的前缀,同时也被用于另一个导入

dart
import 'dart:math' deferred as x;
import 'dart:convert' as x;

var y = x.json.encode(x.min(0, 1));

常见修复方法

#

如果可以为延迟导入使用不同的名称,请这样做

dart
import 'dart:math' deferred as math;
import 'dart:convert' as x;

var y = x.json.encode(math.min(0, 1));

如果可以为其他导入使用不同的名称,请这样做

dart
import 'dart:math' deferred as x;
import 'dart:convert' as convert;

var y = convert.json.encode(x.min(0, 1));