跳到主要内容

invalid_annotation_constant_value_from_deferred_library

来自延迟加载库的常量值不能用于注解中。

描述

#

当在一个注解的参数列表中引用了一个在延迟加载库中定义的常量时,分析器会产生此诊断信息。注解在编译时进行评估,而来自延迟加载库的值在编译时不可用。

更多信息,请查阅延迟加载库

示例

#

以下代码会产生此诊断信息,因为常量 pi 在注解的参数列表中被引用,尽管定义该常量的库是作为延迟加载库导入的。

dart
import 'dart:math' deferred as math;

class C {
  const C(double d);
}

@C(math.pi)
void f () {}

常见修复方法

#

如果你需要引用该导入的常量,则移除 deferred 关键字。

dart
import 'dart:math' as math;

class C {
  const C(double d);
}

@C(math.pi)
void f () {}

如果导入必须是延迟加载的,并且有另一个合适的常量,则使用该常量代替来自延迟加载库的常量。