buildTypeSubstitutionMap function
Map<String, DartType>
buildTypeSubstitutionMap(
- ClassElement element,
- List<
DartType> typeArguments
Implementation
Map<String, DartType> buildTypeSubstitutionMap(
ClassElement element,
List<DartType> typeArguments,
) {
final typeParameters = element.typeParameters;
if (typeParameters.isEmpty ||
typeArguments.isEmpty ||
typeParameters.length != typeArguments.length) {
return const {};
}
final substitutions = <String, DartType>{};
for (var i = 0; i < typeParameters.length; i++) {
final name = typeParameters[i].name;
if (name == null) {
continue;
}
final typeArgument = typeArguments[i];
if (typeArgument is DynamicType) {
continue;
}
substitutions[name] = typeArgument;
}
if (substitutions.length != typeParameters.length) {
return const {};
}
return substitutions;
}