跳到主要内容

non_const_argument_for_const_parameter

参数“{0}”必须是常量。

描述

#

当参数使用 mustBeConst 注解进行标注,并且对应的实参不是常量表达式时,分析器会产生此诊断消息。

示例

#

以下代码会在函数 f 的调用处产生此诊断消息,因为传递给函数 g 的实参的值不是常量。

dart
import 'package:meta/meta.dart' show mustBeConst;

int f(int value) => g(value);

int g(@mustBeConst int value) => value + 1;

常见修复

#

如果可以使用合适的常量,则用常量替换实参。

dart
import 'package:meta/meta.dart' show mustBeConst;

const v = 3;

int f() => g(v);

int g(@mustBeConst int value) => value + 1;