spkersten / dart_functional_data

Simple and non-intrusive code generator for lenses and boilerplate of data types
https://pub.dev/packages/functional_data
MIT License
41 stars 15 forks source link

Collections are incorrect in equals. #6

Closed ValeriusGC closed 5 years ago

ValeriusGC commented 5 years ago

=() generates incorrect code for collection so

@FunctionalData()
class MyList extends $MyList{
  final List<int> items;

  MyList({this.items});
}

  test('list test', (){

    final list1 = MyList(items: [1,2,3]);
    final list2 = MyList(items: [1,2,3]);
    expect(list2, equals(list1));

  });

makes error.

It's all because of incorrect collection equality, see https://stackoverflow.com/questions/10404516/how-can-i-compare-lists-for-equality-in-dart

spkersten commented 5 years ago

You can annotate fields if you don’t want the types equality operator but a custom one. For example:

@CustomEquality(DeepCollectionEquality())
final List<int> number;

On Tue, 13 Aug 2019 at 07:06, Valery Kulikov notifications@github.com wrote:

=() generates incorrect code for collection so

@FunctionalData() class MyList extends $MyList{ final List items;

MyList({this.items}); }

test('list test', (){

final list1 = MyList(items: [1,2,3]);
final list2 = MyList(items: [1,2,3]);
expect(list2, equals(list1));

});

makes error.

It's all because of incorrect collection equality, see https://stackoverflow.com/questions/10404516/how-can-i-compare-lists-for-equality-in-dart

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/spkersten/dart_functional_data/issues/6?email_source=notifications&email_token=ABCADAEOO3I22IT2NUK5UJ3QEI6NFA5CNFSM4ILHEAE2YY3PNVWWK3TUL52HS4DFUVEXG43VMWVGG33NNVSW45C7NFSM4HE3UAYQ, or mute the thread https://github.com/notifications/unsubscribe-auth/ABCADAGOSFDONUI274S3Z43QEI6NFANCNFSM4ILHEAEQ .

ValeriusGC commented 5 years ago

... and don’t forget to remake the *g.dart file. Otherwise it doesn’t work. Thanxxx.