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

non_constant_type_argument

'{0}' の型引数はコンパイル時に知られている必要があります。そのため、型パラメーターを使用することはできません。

説明

#

メソッドの型引数がコンパイル時に知られている必要があるにもかかわらず、コンパイル時に値がわからない型パラメーターが型引数として使用されている場合、アナライザーはこの診断を生成します。

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

#

以下のコードは、この診断を生成します。なぜなら、Pointer.asFunction の型引数はコンパイル時に知られている必要があるのに、コンパイル時にわからない型パラメーター R が型引数として使用されているからです。

dart
import 'dart:ffi';

typedef T = int Function(int);

class C<R extends T> {
  void m(Pointer<NativeFunction<T>> p) {
    p.asFunction<R>();
  }
}

一般的な修正

#

型パラメーターの使用を削除してください。

dart
import 'dart:ffi';

class C {
  void m(Pointer<NativeFunction<Int64 Function(Int64)>> p) {
    p.asFunction<int Function(int)>();
  }
}