メインコンテンツにスキップ

argument_must_be_a_constant

引数 '{0}' は定数である必要があります。

説明

#

Pointer.asFunction または DynamicLibrary.lookupFunction の呼び出しで、isLeaf 引数の値が定数式ではない場合に、アナライザーはこの診断を生成します。

Pointer.fromFunction または NativeCallable.isolateLocal の呼び出しで、exceptionalReturn 引数の値が定数式ではない場合にも、アナライザーはこの診断を生成します。

FFI の詳細については、dart:ffi を使用した C の相互運用 を参照してください。

#

以下のコードは、isLeaf 引数の値がパラメータであり、定数ではないため、この診断を生成します。

dart
import 'dart:ffi';

int Function(int) fromPointer(
    Pointer<NativeFunction<Int8 Function(Int8)>> p, bool isLeaf) {
  return p.asFunction(isLeaf: isLeaf);
}

一般的な修正

#

適切な定数を使用できる場合は、引数を定数に置き換えてください。

dart
import 'dart:ffi';

const isLeaf = false;

int Function(int) fromPointer(Pointer<NativeFunction<Int8 Function(Int8)>> p) {
  return p.asFunction(isLeaf: isLeaf);
}

適切な定数がない場合は、引数をブール値リテラルに置き換えてください。

dart
import 'dart:ffi';

int Function(int) fromPointer(Pointer<NativeFunction<Int8 Function(Int8)>> p) {
  return p.asFunction(isLeaf: true);
}