generateEqualsOperator method

void generateEqualsOperator(
  1. BuildContext? ctx,
  2. ClassBuilder clazz,
  3. LibraryBuilder file
)

Implementation

void generateEqualsOperator(
    BuildContext? ctx, ClassBuilder clazz, LibraryBuilder file) {
  clazz.methods.add(Method((method) {
    method
      ..name = 'operator =='
      ..annotations.add(refer('override'))
      ..returns = Reference('bool')
      ..requiredParameters.add(Parameter((b) => b.name = 'other'));

    var buf = ['other is ${ctx!.originalClassName}'];

    buf.addAll(ctx.fields.map((f) {
      return generateComparator(f.type)('other.${f.name}', f.name);
    }));

    method.body = Code('return ${buf.join('&&')};');
  }));
}