generateEquality static method
String?
generateEquality(
- DartType type, [
- bool nullable = false
])
Implementation
static String? generateEquality(DartType type, [bool nullable = false]) {
if (type is InterfaceType) {
if (const TypeChecker.fromRuntime(List).isAssignableFromType(type)) {
if (type.typeArguments.length == 1) {
var eq = generateEquality(type.typeArguments[0]);
return 'ListEquality<${type.typeArguments[0].element!.name}>($eq)';
} else {
return 'ListEquality()';
}
} else if (const TypeChecker.fromRuntime(Map)
.isAssignableFromType(type)) {
if (type.typeArguments.length == 2) {
var keq = generateEquality(type.typeArguments[0]),
veq = generateEquality(type.typeArguments[1]);
return 'MapEquality<${type.typeArguments[0].element!.name}, ${type.typeArguments[1].element!.name}>(keys: $keq, values: $veq)';
} else {
return 'MapEquality()';
}
}
return nullable ? null : 'DefaultEquality<${type.element.name}>()';
} else {
return 'DefaultEquality()';
}
}