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

must_be_a_native_function_type

「{1}」に指定された型「{0}」は、有効な 'dart:ffi' ネイティブ関数型である必要があります。

説明

#

Pointer.fromFunctionDynamicLibrary.lookupFunction、または NativeCallable コンストラクタの呼び出しで、型引数(明示的か推論されたかにかかわらず)がネイティブ関数型ではない場合に、アナライザはこの診断を生成します。

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

#

次のコードは、型 TFunction の任意のサブクラスになる可能性があるため、この診断を生成します。しかし、fromFunction の型引数にはネイティブ関数型が必要です。

dart
import 'dart:ffi';

int f(int i) => i * 2;

class C<T extends Function> {
  void g() {
    Pointer.fromFunction<T>(f, 0);
  }
}

一般的な修正

#

呼び出しの型引数としてネイティブ関数型を使用してください。

dart
import 'dart:ffi';

int f(int i) => i * 2;

class C<T extends Function> {
  void g() {
    Pointer.fromFunction<Int32 Function(Int32)>(f, 0);
  }
}