in working/macros/example/data_class.dart [203:220]
Future<void> buildDefinitionForClass(
ClassDeclaration clazz, ClassDefinitionBuilder builder) async {
var methods = await builder.methodsOf(clazz);
var equalsBuilder = await builder.buildMethod(
methods.firstWhere((m) => m.identifier.name == '==').identifier);
var equalityExprs = [
await for (var field in clazz.allFields(builder))
ExpressionCode.fromString(
'this.${field.identifier.name} == other.${field.identifier.name}'),
].joinAsCode(' && ');
equalsBuilder.augment(FunctionBodyCode.fromParts([
' => other is ',
clazz.identifier,
' && ',
...equalityExprs,
';',
]));
}