types method
Make generic type tree.
Implementation
String types(DartType k, {Map<String, String>? refers}) {
if (k is TypeParameterType) {
return refers?[k.element.displayName] ?? 'dynamic';
}
if (k is VoidType) {
return 'dynamic';
}
if (k is! ParameterizedType || k.typeArguments.isEmpty) {
return k.element?.displayName ?? 'dynamic';
}
final raw = k.element?.displayName ?? 'dynamic';
final args = k.typeArguments.map((v) => types(v, refers: refers)).join(', ');
return 'Types($raw, [$args], ()=>${constructor(k, refers: refers)})';
}