isModelClass function
Determines if a type supports package:angel3_serialize.
Implementation
bool isModelClass(DartType? t) {
if (t == null) return false;
if (serializableTypeChecker.hasAnnotationOf(t.element!)) {
return true;
}
if (generatedSerializableTypeChecker.hasAnnotationOf(t.element!)) {
return true;
}
// TODO: Changing to typeNamed() will cause an exception in source_gen
DartType d = t;
if (TypeChecker.typeNamed(
Model,
inPackage: 'angel3_serialize',
).isAssignableFromType(d)) {
return true;
}
if (t is InterfaceType) {
return isModelClass(t.superclass);
} else {
return false;
}
}