diff --git a/CHANGELOG.md b/CHANGELOG.md index 2484949e2..d52b4b60e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## vNext (TBD) ### Enhancements +* Suppressing rules for a *.g.dart files ([#1413](https://github.com/realm/realm-dart/pull/1413)) * Full text search supports searching for prefix only. Eg. "description TEXT 'alex*'" (Core upgrade) * Unknown protocol errors received from the baas server will no longer cause the application to crash if a valid error action is also received. Unknown error actions will be treated as an ApplicationBug error action and will cause sync to fail with an error via the sync error handler. (Core upgrade) * Added support for server log messages that are enabled by sync protocol version 10. AppServices request id will be provided in a server log message in a future server release. (Core upgrade) @@ -11,6 +12,7 @@ * Throw an exception if `File::unlock` has failed, in order to inform the SDK that we are likely hitting some limitation on the OS filesystem, instead of crashing the application and use the same file locking logic for all the platforms. (Core upgrade) ### Fixed +* Fixed iteration after `skip` bug ([#1409](https://github.com/realm/realm-dart/issues/1409)) * Crash when querying the size of a Object property through a link chain (Core upgrade, since v13.17.2) * Deprecated `App.localAppName` and `App.localAppVersion`. They were not used by the server and were not needed to set them. ([#1387](https://github.com/realm/realm-dart/pull/1387)) * Fixed crash in slab allocator (Assertion failed: ref + size <= next->first) Many issues like (Core upgrade, since 13.0.0) diff --git a/example/bin/myapp.g.dart b/example/bin/myapp.g.dart index 6ea6cfb71..4b81d0787 100644 --- a/example/bin/myapp.g.dart +++ b/example/bin/myapp.g.dart @@ -6,6 +6,7 @@ part of 'myapp.dart'; // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Car extends _Car with RealmEntity, RealmObjectBase, RealmObject { static var _defaultsSet = false; @@ -70,6 +71,7 @@ class Car extends _Car with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Person extends _Person with RealmEntity, RealmObjectBase, RealmObject { static var _defaultsSet = false; diff --git a/flutter/realm_flutter/example/lib/main.g.dart b/flutter/realm_flutter/example/lib/main.g.dart index f7627287f..ba6690288 100644 --- a/flutter/realm_flutter/example/lib/main.g.dart +++ b/flutter/realm_flutter/example/lib/main.g.dart @@ -6,6 +6,7 @@ part of 'main.dart'; // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Car extends _Car with RealmEntity, RealmObjectBase, RealmObject { static var _defaultsSet = false; @@ -70,6 +71,7 @@ class Car extends _Car with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Person extends _Person with RealmEntity, RealmObjectBase, RealmObject { static var _defaultsSet = false; diff --git a/generator/lib/src/realm_model_info.dart b/generator/lib/src/realm_model_info.dart index 84843ae4c..1d58c7831 100644 --- a/generator/lib/src/realm_model_info.dart +++ b/generator/lib/src/realm_model_info.dart @@ -32,6 +32,7 @@ class RealmModelInfo { const RealmModelInfo(this.name, this.modelName, this.realmName, this.fields, this.baseType); Iterable toCode() sync* { + yield '// ignore_for_file: type=lint'; yield 'class $name extends $modelName with RealmEntity, RealmObjectBase, ${baseType.className} {'; { final allSettable = fields.where((f) => !f.type.isRealmCollection && !f.isRealmBacklink).toList(); diff --git a/generator/test/good_test.dart b/generator/test/good_test.dart index bc0e3a6f9..62446b481 100644 --- a/generator/test/good_test.dart +++ b/generator/test/good_test.dart @@ -36,6 +36,7 @@ class _MappedToo { // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class MappedToo extends _MappedToo with RealmEntity, RealmObjectBase, RealmObject { MappedToo({ diff --git a/generator/test/good_test_data/all_types.expected b/generator/test/good_test_data/all_types.expected index 385bef5b2..87389202f 100644 --- a/generator/test/good_test_data/all_types.expected +++ b/generator/test/good_test_data/all_types.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Foo extends _Foo with RealmEntity, RealmObjectBase, RealmObject { static var _defaultsSet = false; @@ -49,6 +50,7 @@ class Foo extends _Foo with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Bar extends _Bar with RealmEntity, RealmObjectBase, RealmObject { static var _defaultsSet = false; @@ -225,6 +227,7 @@ class Bar extends _Bar with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class PrimitiveTypes extends _PrimitiveTypes with RealmEntity, RealmObjectBase, RealmObject { PrimitiveTypes( diff --git a/generator/test/good_test_data/asymmetric_object.expected b/generator/test/good_test_data/asymmetric_object.expected index f96dbfde2..eaf9e1d81 100644 --- a/generator/test/good_test_data/asymmetric_object.expected +++ b/generator/test/good_test_data/asymmetric_object.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Asymmetric extends _Asymmetric with RealmEntity, RealmObjectBase, RealmObject { Asymmetric( @@ -70,6 +71,7 @@ class Asymmetric extends _Asymmetric } } +// ignore_for_file: type=lint class Embedded extends _Embedded with RealmEntity, RealmObjectBase, EmbeddedObject { Embedded( diff --git a/generator/test/good_test_data/binary_type.expected b/generator/test/good_test_data/binary_type.expected index b1b8502f0..f9d166c36 100644 --- a/generator/test/good_test_data/binary_type.expected +++ b/generator/test/good_test_data/binary_type.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Foo extends _Foo with RealmEntity, RealmObjectBase, RealmObject { Foo( Uint8List requiredBinaryProp, { diff --git a/generator/test/good_test_data/embedded_annotations.expected b/generator/test/good_test_data/embedded_annotations.expected index 9d57b36ea..ed4f5468d 100644 --- a/generator/test/good_test_data/embedded_annotations.expected +++ b/generator/test/good_test_data/embedded_annotations.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Parent extends _Parent with RealmEntity, RealmObjectBase, RealmObject { Parent({ Child1? child, @@ -50,6 +51,7 @@ class Parent extends _Parent with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Child1 extends _Child1 with RealmEntity, RealmObjectBase, EmbeddedObject { Child1( String value, diff --git a/generator/test/good_test_data/embedded_objects.expected b/generator/test/good_test_data/embedded_objects.expected index efff5f50f..c220d51bd 100644 --- a/generator/test/good_test_data/embedded_objects.expected +++ b/generator/test/good_test_data/embedded_objects.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Parent extends _Parent with RealmEntity, RealmObjectBase, RealmObject { Parent({ Child1? child, @@ -47,6 +48,7 @@ class Parent extends _Parent with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Child1 extends _Child1 with RealmEntity, RealmObjectBase, EmbeddedObject { Child1( String value, { @@ -111,6 +113,7 @@ class Child1 extends _Child1 with RealmEntity, RealmObjectBase, EmbeddedObject { } } +// ignore_for_file: type=lint class Child2 extends _Child2 with RealmEntity, RealmObjectBase, EmbeddedObject { Child2( bool boolProp, diff --git a/generator/test/good_test_data/indexable_types.expected b/generator/test/good_test_data/indexable_types.expected index d42d0e3d0..5b4e218d0 100644 --- a/generator/test/good_test_data/indexable_types.expected +++ b/generator/test/good_test_data/indexable_types.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Indexable extends _Indexable with RealmEntity, RealmObjectBase, RealmObject { Indexable( diff --git a/generator/test/good_test_data/list_initialization.expected b/generator/test/good_test_data/list_initialization.expected index 5fcfb33b7..331621f54 100644 --- a/generator/test/good_test_data/list_initialization.expected +++ b/generator/test/good_test_data/list_initialization.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Person extends _Person with RealmEntity, RealmObjectBase, RealmObject { Person({ Iterable children = const [], diff --git a/generator/test/good_test_data/mapto.expected b/generator/test/good_test_data/mapto.expected index 45fa668cf..dc1876955 100644 --- a/generator/test/good_test_data/mapto.expected +++ b/generator/test/good_test_data/mapto.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Original extends $Original with RealmEntity, RealmObjectBase, RealmObject { static var _defaultsSet = false; diff --git a/generator/test/good_test_data/optional_argument.expected b/generator/test/good_test_data/optional_argument.expected index fb7565b4f..f42fb6b3e 100644 --- a/generator/test/good_test_data/optional_argument.expected +++ b/generator/test/good_test_data/optional_argument.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Person extends _Person with RealmEntity, RealmObjectBase, RealmObject { Person({ Person? spouse, diff --git a/generator/test/good_test_data/pinhole.expected b/generator/test/good_test_data/pinhole.expected index fcc868bcb..9062dc8ad 100644 --- a/generator/test/good_test_data/pinhole.expected +++ b/generator/test/good_test_data/pinhole.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Foo extends _Foo with RealmEntity, RealmObjectBase, RealmObject { static var _defaultsSet = false; diff --git a/generator/test/good_test_data/primary_key.expected b/generator/test/good_test_data/primary_key.expected index fc18b7497..50706082a 100644 --- a/generator/test/good_test_data/primary_key.expected +++ b/generator/test/good_test_data/primary_key.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class IntPK extends _IntPK with RealmEntity, RealmObjectBase, RealmObject { IntPK( int id, @@ -33,6 +34,7 @@ class IntPK extends _IntPK with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class NullableIntPK extends _NullableIntPK with RealmEntity, RealmObjectBase, RealmObject { NullableIntPK( @@ -67,6 +69,7 @@ class NullableIntPK extends _NullableIntPK } } +// ignore_for_file: type=lint class StringPK extends _StringPK with RealmEntity, RealmObjectBase, RealmObject { StringPK( @@ -99,6 +102,7 @@ class StringPK extends _StringPK } } +// ignore_for_file: type=lint class NullableStringPK extends _NullableStringPK with RealmEntity, RealmObjectBase, RealmObject { NullableStringPK( @@ -134,6 +138,7 @@ class NullableStringPK extends _NullableStringPK } } +// ignore_for_file: type=lint class ObjectIdPK extends _ObjectIdPK with RealmEntity, RealmObjectBase, RealmObject { ObjectIdPK( @@ -166,6 +171,7 @@ class ObjectIdPK extends _ObjectIdPK } } +// ignore_for_file: type=lint class NullableObjectIdPK extends _NullableObjectIdPK with RealmEntity, RealmObjectBase, RealmObject { NullableObjectIdPK( @@ -201,6 +207,7 @@ class NullableObjectIdPK extends _NullableObjectIdPK } } +// ignore_for_file: type=lint class UuidPK extends _UuidPK with RealmEntity, RealmObjectBase, RealmObject { UuidPK( Uuid id, @@ -232,6 +239,7 @@ class UuidPK extends _UuidPK with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class NullableUuidPK extends _NullableUuidPK with RealmEntity, RealmObjectBase, RealmObject { NullableUuidPK( diff --git a/generator/test/good_test_data/realm_set.expected b/generator/test/good_test_data/realm_set.expected index 3bb5a2962..0ccc439c5 100644 --- a/generator/test/good_test_data/realm_set.expected +++ b/generator/test/good_test_data/realm_set.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Car extends _Car with RealmEntity, RealmObjectBase, RealmObject { Car( String make, @@ -33,6 +34,7 @@ class Car extends _Car with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class RealmSets extends _RealmSets with RealmEntity, RealmObjectBase, RealmObject { RealmSets( diff --git a/generator/test/good_test_data/required_argument.expected b/generator/test/good_test_data/required_argument.expected index ba7db413e..525c54722 100644 --- a/generator/test/good_test_data/required_argument.expected +++ b/generator/test/good_test_data/required_argument.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Person extends _Person with RealmEntity, RealmObjectBase, RealmObject { Person( String name, diff --git a/generator/test/good_test_data/required_argument_with_default_value.expected b/generator/test/good_test_data/required_argument_with_default_value.expected index 5ea8348de..f76934050 100644 --- a/generator/test/good_test_data/required_argument_with_default_value.expected +++ b/generator/test/good_test_data/required_argument_with_default_value.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Person extends _Person with RealmEntity, RealmObjectBase, RealmObject { static var _defaultsSet = false; diff --git a/generator/test/good_test_data/user_defined_getter.expected b/generator/test/good_test_data/user_defined_getter.expected index b9506bae9..a2e42eefe 100644 --- a/generator/test/good_test_data/user_defined_getter.expected +++ b/generator/test/good_test_data/user_defined_getter.expected @@ -2,6 +2,7 @@ // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Person extends _Person with RealmEntity, RealmObjectBase, RealmObject { Person( String name, diff --git a/lib/src/results.dart b/lib/src/results.dart index 4bea432f3..160c49a92 100644 --- a/lib/src/results.dart +++ b/lib/src/results.dart @@ -86,7 +86,7 @@ class RealmResults extends Iterable with RealmEntity imple var results = this; if (_supportsSnapshot) { final handle = realmCore.resultsSnapshot(this); - results = RealmResultsInternal.create(handle, realm, _metadata); + results = RealmResultsInternal.create(handle, realm, _metadata, _skipOffset); } return _RealmResultsIterator(results); } @@ -184,8 +184,9 @@ extension RealmResultsInternal on RealmResults { RealmResultsHandle handle, Realm realm, RealmObjectMetadata? metadata, + [int skip = 0] ) => - RealmResults._(handle, realm, metadata); + RealmResults._(handle, realm, metadata, skip); } /// Describes the changes in a Realm results collection since the last time the notification callback was invoked. diff --git a/test/backlinks_test.g.dart b/test/backlinks_test.g.dart index 48fa00b8a..224698d8f 100644 --- a/test/backlinks_test.g.dart +++ b/test/backlinks_test.g.dart @@ -6,6 +6,7 @@ part of 'backlinks_test.dart'; // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Source extends _Source with RealmEntity, RealmObjectBase, RealmObject { static var _defaultsSet = false; @@ -67,6 +68,7 @@ class Source extends _Source with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Target extends _Target with RealmEntity, RealmObjectBase, RealmObject { static var _defaultsSet = false; diff --git a/test/indexed_test.g.dart b/test/indexed_test.g.dart index 18d108a85..a29ad252b 100644 --- a/test/indexed_test.g.dart +++ b/test/indexed_test.g.dart @@ -6,6 +6,7 @@ part of 'indexed_test.dart'; // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class WithIndexes extends _WithIndexes with RealmEntity, RealmObjectBase, RealmObject { WithIndexes( @@ -88,6 +89,7 @@ class WithIndexes extends _WithIndexes } } +// ignore_for_file: type=lint class NoIndexes extends _NoIndexes with RealmEntity, RealmObjectBase, RealmObject { NoIndexes( @@ -163,6 +165,7 @@ class NoIndexes extends _NoIndexes } } +// ignore_for_file: type=lint class ObjectWithFTSIndex extends _ObjectWithFTSIndex with RealmEntity, RealmObjectBase, RealmObject { ObjectWithFTSIndex( diff --git a/test/migration_test.g.dart b/test/migration_test.g.dart index 7cb6db9e9..a7b35c72c 100644 --- a/test/migration_test.g.dart +++ b/test/migration_test.g.dart @@ -6,6 +6,7 @@ part of 'migration_test.dart'; // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class PersonIntName extends _PersonIntName with RealmEntity, RealmObjectBase, RealmObject { PersonIntName( @@ -38,6 +39,7 @@ class PersonIntName extends _PersonIntName } } +// ignore_for_file: type=lint class StudentV1 extends _StudentV1 with RealmEntity, RealmObjectBase, RealmObject { StudentV1( @@ -79,6 +81,7 @@ class StudentV1 extends _StudentV1 } } +// ignore_for_file: type=lint class MyObjectWithTypo extends _MyObjectWithTypo with RealmEntity, RealmObjectBase, RealmObject { MyObjectWithTypo( @@ -121,6 +124,7 @@ class MyObjectWithTypo extends _MyObjectWithTypo } } +// ignore_for_file: type=lint class MyObjectWithoutTypo extends _MyObjectWithoutTypo with RealmEntity, RealmObjectBase, RealmObject { MyObjectWithoutTypo( @@ -163,6 +167,7 @@ class MyObjectWithoutTypo extends _MyObjectWithoutTypo } } +// ignore_for_file: type=lint class MyObjectWithoutValue extends _MyObjectWithoutValue with RealmEntity, RealmObjectBase, RealmObject { MyObjectWithoutValue( diff --git a/test/realm_object_test.g.dart b/test/realm_object_test.g.dart index 39623e31d..8e77e81b9 100644 --- a/test/realm_object_test.g.dart +++ b/test/realm_object_test.g.dart @@ -6,6 +6,7 @@ part of 'realm_object_test.dart'; // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class ObjectIdPrimaryKey extends _ObjectIdPrimaryKey with RealmEntity, RealmObjectBase, RealmObject { ObjectIdPrimaryKey( @@ -40,6 +41,7 @@ class ObjectIdPrimaryKey extends _ObjectIdPrimaryKey } } +// ignore_for_file: type=lint class NullableObjectIdPrimaryKey extends _NullableObjectIdPrimaryKey with RealmEntity, RealmObjectBase, RealmObject { NullableObjectIdPrimaryKey( @@ -75,6 +77,7 @@ class NullableObjectIdPrimaryKey extends _NullableObjectIdPrimaryKey } } +// ignore_for_file: type=lint class IntPrimaryKey extends _IntPrimaryKey with RealmEntity, RealmObjectBase, RealmObject { IntPrimaryKey( @@ -108,6 +111,7 @@ class IntPrimaryKey extends _IntPrimaryKey } } +// ignore_for_file: type=lint class NullableIntPrimaryKey extends _NullableIntPrimaryKey with RealmEntity, RealmObjectBase, RealmObject { NullableIntPrimaryKey( @@ -143,6 +147,7 @@ class NullableIntPrimaryKey extends _NullableIntPrimaryKey } } +// ignore_for_file: type=lint class StringPrimaryKey extends _StringPrimaryKey with RealmEntity, RealmObjectBase, RealmObject { StringPrimaryKey( @@ -177,6 +182,7 @@ class StringPrimaryKey extends _StringPrimaryKey } } +// ignore_for_file: type=lint class NullableStringPrimaryKey extends _NullableStringPrimaryKey with RealmEntity, RealmObjectBase, RealmObject { NullableStringPrimaryKey( @@ -212,6 +218,7 @@ class NullableStringPrimaryKey extends _NullableStringPrimaryKey } } +// ignore_for_file: type=lint class UuidPrimaryKey extends _UuidPrimaryKey with RealmEntity, RealmObjectBase, RealmObject { UuidPrimaryKey( @@ -245,6 +252,7 @@ class UuidPrimaryKey extends _UuidPrimaryKey } } +// ignore_for_file: type=lint class NullableUuidPrimaryKey extends _NullableUuidPrimaryKey with RealmEntity, RealmObjectBase, RealmObject { NullableUuidPrimaryKey( @@ -280,6 +288,7 @@ class NullableUuidPrimaryKey extends _NullableUuidPrimaryKey } } +// ignore_for_file: type=lint class RemappedFromAnotherFile extends _RemappedFromAnotherFile with RealmEntity, RealmObjectBase, RealmObject { RemappedFromAnotherFile({ @@ -320,6 +329,7 @@ class RemappedFromAnotherFile extends _RemappedFromAnotherFile } } +// ignore_for_file: type=lint class BoolValue extends _BoolValue with RealmEntity, RealmObjectBase, RealmObject { BoolValue( diff --git a/test/realm_set_test.g.dart b/test/realm_set_test.g.dart index 8aea06a0f..c8ce0aaa1 100644 --- a/test/realm_set_test.g.dart +++ b/test/realm_set_test.g.dart @@ -6,6 +6,7 @@ part of 'realm_set_test.dart'; // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Car extends _Car with RealmEntity, RealmObjectBase, RealmObject { Car( String make, { @@ -45,6 +46,7 @@ class Car extends _Car with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class TestRealmSets extends _TestRealmSets with RealmEntity, RealmObjectBase, RealmObject { TestRealmSets( diff --git a/test/realm_value_test.g.dart b/test/realm_value_test.g.dart index 44976478b..0aaec8d53 100644 --- a/test/realm_value_test.g.dart +++ b/test/realm_value_test.g.dart @@ -6,6 +6,7 @@ part of 'realm_value_test.dart'; // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class TuckedIn extends _TuckedIn with RealmEntity, RealmObjectBase, EmbeddedObject { static var _defaultsSet = false; @@ -45,6 +46,7 @@ class TuckedIn extends _TuckedIn } } +// ignore_for_file: type=lint class AnythingGoes extends _AnythingGoes with RealmEntity, RealmObjectBase, RealmObject { AnythingGoes({ @@ -92,6 +94,7 @@ class AnythingGoes extends _AnythingGoes } } +// ignore_for_file: type=lint class Stuff extends _Stuff with RealmEntity, RealmObjectBase, RealmObject { static var _defaultsSet = false; diff --git a/test/results_test.dart b/test/results_test.dart index 61b7d562c..9a1115b28 100644 --- a/test/results_test.dart +++ b/test/results_test.dart @@ -1008,9 +1008,23 @@ Future main([List? args]) async { for (int i = 0; i < max; i++) { for (var j = 0; j < max - i; j++) { - expect(all.skip(i + j).contains(tasks[i + j]), true); + expect(all.skip(i).contains(tasks[i + j]), true); expect(all.skip(i + j + 1).contains(tasks[i + j]), false); } } }); + + test('RealmResults.skip().take()', () { + final config = Configuration.local([Task.schema]); + final realm = getRealm(config); + const max = 10; + realm.write(() { + realm.addAll(List.generate(max, (_) => Task(ObjectId()))); + }); + + final results = realm.all(); + + expect(results.skip(2), results.toList().sublist(2)); + expect(results.skip(2).take(3), [results[2], results[3], results[4]]); + }); } diff --git a/test/test.dart b/test/test.dart index ba77a7de2..1c07868c9 100644 --- a/test/test.dart +++ b/test/test.dart @@ -97,6 +97,9 @@ class _Task { @PrimaryKey() @MapTo('_id') late ObjectId id; + + @override + String toString() => 'Task($id)'; } @RealmModel() diff --git a/test/test.g.dart b/test/test.g.dart index 17ff7c93e..3f7e00d55 100644 --- a/test/test.g.dart +++ b/test/test.g.dart @@ -6,6 +6,7 @@ part of 'test.dart'; // RealmObjectGenerator // ************************************************************************** +// ignore_for_file: type=lint class Car extends _Car with RealmEntity, RealmObjectBase, RealmObject { Car( String make, @@ -37,6 +38,7 @@ class Car extends _Car with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Person extends _Person with RealmEntity, RealmObjectBase, RealmObject { Person( String name, @@ -68,6 +70,7 @@ class Person extends _Person with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Dog extends _Dog with RealmEntity, RealmObjectBase, RealmObject { Dog( String name, { @@ -117,6 +120,7 @@ class Dog extends _Dog with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Team extends _Team with RealmEntity, RealmObjectBase, RealmObject { Team( String name, { @@ -171,6 +175,7 @@ class Team extends _Team with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Student extends _Student with RealmEntity, RealmObjectBase, RealmObject { Student( int number, { @@ -229,6 +234,7 @@ class Student extends _Student with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class School extends _School with RealmEntity, RealmObjectBase, RealmObject { School( String name, { @@ -303,6 +309,7 @@ class School extends _School with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class RemappedClass extends $RemappedClass with RealmEntity, RealmObjectBase, RealmObject { RemappedClass( @@ -354,6 +361,7 @@ class RemappedClass extends $RemappedClass } } +// ignore_for_file: type=lint class Task extends _Task with RealmEntity, RealmObjectBase, RealmObject { Task( ObjectId id, @@ -386,6 +394,7 @@ class Task extends _Task with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Product extends _Product with RealmEntity, RealmObjectBase, RealmObject { Product( ObjectId id, @@ -429,6 +438,7 @@ class Product extends _Product with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Schedule extends _Schedule with RealmEntity, RealmObjectBase, RealmObject { Schedule( @@ -473,6 +483,7 @@ class Schedule extends _Schedule } } +// ignore_for_file: type=lint class Foo extends _Foo with RealmEntity, RealmObjectBase, RealmObject { Foo( Uint8List requiredBinaryProp, { @@ -529,6 +540,7 @@ class Foo extends _Foo with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class AllTypes extends _AllTypes with RealmEntity, RealmObjectBase, RealmObject { AllTypes( @@ -735,6 +747,7 @@ class AllTypes extends _AllTypes } } +// ignore_for_file: type=lint class LinksClass extends _LinksClass with RealmEntity, RealmObjectBase, RealmObject { LinksClass( @@ -791,6 +804,7 @@ class LinksClass extends _LinksClass } } +// ignore_for_file: type=lint class AllCollections extends _AllCollections with RealmEntity, RealmObjectBase, RealmObject { AllCollections({ @@ -1010,6 +1024,7 @@ class AllCollections extends _AllCollections } } +// ignore_for_file: type=lint class NullableTypes extends _NullableTypes with RealmEntity, RealmObjectBase, RealmObject { NullableTypes( @@ -1129,6 +1144,7 @@ class NullableTypes extends _NullableTypes } } +// ignore_for_file: type=lint class Event extends _Event with RealmEntity, RealmObjectBase, RealmObject { Event( ObjectId id, { @@ -1204,6 +1220,7 @@ class Event extends _Event with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Party extends _Party with RealmEntity, RealmObjectBase, RealmObject { Party( int year, { @@ -1266,6 +1283,7 @@ class Party extends _Party with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Friend extends _Friend with RealmEntity, RealmObjectBase, RealmObject { static var _defaultsSet = false; @@ -1335,6 +1353,7 @@ class Friend extends _Friend with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class When extends _When with RealmEntity, RealmObjectBase, RealmObject { When( DateTime dateTimeUtc, @@ -1378,6 +1397,7 @@ class When extends _When with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Player extends _Player with RealmEntity, RealmObjectBase, RealmObject { Player( String name, { @@ -1430,6 +1450,7 @@ class Player extends _Player with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class Game extends _Game with RealmEntity, RealmObjectBase, RealmObject { Game({ Iterable winnerByRound = const [], @@ -1465,6 +1486,7 @@ class Game extends _Game with RealmEntity, RealmObjectBase, RealmObject { } } +// ignore_for_file: type=lint class AllTypesEmbedded extends _AllTypesEmbedded with RealmEntity, RealmObjectBase, EmbeddedObject { AllTypesEmbedded( @@ -1745,6 +1767,7 @@ class AllTypesEmbedded extends _AllTypesEmbedded } } +// ignore_for_file: type=lint class ObjectWithEmbedded extends _ObjectWithEmbedded with RealmEntity, RealmObjectBase, RealmObject { ObjectWithEmbedded( @@ -1842,6 +1865,7 @@ class ObjectWithEmbedded extends _ObjectWithEmbedded } } +// ignore_for_file: type=lint class RecursiveEmbedded1 extends _RecursiveEmbedded1 with RealmEntity, RealmObjectBase, EmbeddedObject { RecursiveEmbedded1( @@ -1914,6 +1938,7 @@ class RecursiveEmbedded1 extends _RecursiveEmbedded1 } } +// ignore_for_file: type=lint class RecursiveEmbedded2 extends _RecursiveEmbedded2 with RealmEntity, RealmObjectBase, EmbeddedObject { RecursiveEmbedded2( @@ -1986,6 +2011,7 @@ class RecursiveEmbedded2 extends _RecursiveEmbedded2 } } +// ignore_for_file: type=lint class RecursiveEmbedded3 extends _RecursiveEmbedded3 with RealmEntity, RealmObjectBase, EmbeddedObject { RecursiveEmbedded3( @@ -2020,6 +2046,7 @@ class RecursiveEmbedded3 extends _RecursiveEmbedded3 } } +// ignore_for_file: type=lint class ObjectWithDecimal extends _ObjectWithDecimal with RealmEntity, RealmObjectBase, RealmObject { ObjectWithDecimal( @@ -2066,6 +2093,7 @@ class ObjectWithDecimal extends _ObjectWithDecimal } } +// ignore_for_file: type=lint class Asymmetric extends _Asymmetric with RealmEntity, RealmObjectBase, AsymmetricObject { Asymmetric( @@ -2113,6 +2141,7 @@ class Asymmetric extends _Asymmetric } } +// ignore_for_file: type=lint class Embedded extends _Embedded with RealmEntity, RealmObjectBase, EmbeddedObject { Embedded( @@ -2165,6 +2194,7 @@ class Embedded extends _Embedded } } +// ignore_for_file: type=lint class Symmetric extends _Symmetric with RealmEntity, RealmObjectBase, RealmObject { Symmetric(