Future buildDefinitionForClass()

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,
      ';',
    ]));
  }