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

native_function_missing_type

この関数のネイティブ型を推論できなかったため、アノテーションで指定する必要があります。

説明

#

@Native アノテーションが付与された関数で、ネイティブ関数の型を推論するためにアノテーションに型ヒントが必要な場合に、アナライザーはこの診断を生成します。

intdouble などの Dart 型には、複数のネイティブ表現が考えられます。ネイティブ型は、正しいバインディングと関数呼び出し命令を生成するためにコンパイル時に知る必要があるため、明示的な型を指定する必要があります。

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

#

以下のコードは、関数 f() の戻り値の型が int であるにもかかわらず、Native アノテーションに明示的な型パラメータがないため、この診断を生成します。

dart
import 'dart:ffi';

@Native()
external int f();

一般的な修正

#

アノテーションに対応する型を追加してください。たとえば、C で f()int32_t を返すように宣言されていた場合、Dart 関数は次のように宣言する必要があります。

dart
import 'dart:ffi';

@Native<Int32 Function()>()
external int f();