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)>();
}
}