- 
                Notifications
    You must be signed in to change notification settings 
- Fork 447
Open
Labels
problemAn unconfirmed bug.An unconfirmed bug.
Description
Steps to Reproduce
Create an empty class with the HiveType annotation.
@HiveType(typeId: 0)
class EmptyClass {}
Start the generator. The result is:
class EmptyClassAdapter extends TypeAdapter<EmptyClass> {
  @override
  final int typeId = 58;
  @override
  EmptyClass read(BinaryReader reader) {
    return EmptyClass();
  }
  @override
  void write(BinaryWriter writer, EmptyClass obj) {
    writer.writeByte(0);
  }
  @override
  int get hashCode => typeId.hashCode;
  @override
  bool operator ==(Object other) =>
      identical(this, other) ||
      other is EmptyClassAdapter &&
          runtimeType == other.runtimeType &&
          typeId == other.typeId;
}
But the correct result should be:
class EmptyClassAdapter extends TypeAdapter<EmptyClass> {
  @override
  final int typeId = 58;
  @override
  EmptyClass read(BinaryReader reader) {
    final numOfFields = reader.readByte();
    final fields = <int, dynamic>{
      for (int i = 0; i < numOfFields; i++) reader.readByte(): reader.read(),
    };
    return EmptyClass();
  }
  @override
  void write(BinaryWriter writer, EmptyClass obj) {
    writer.writeByte(0);
  }
  @override
  int get hashCode => typeId.hashCode;
  @override
  bool operator ==(Object other) =>
      identical(this, other) ||
      other is EmptyClassAdapter &&
          runtimeType == other.runtimeType &&
          typeId == other.typeId;
}
Version
- Platform: -
- Flutter version: 3.3.2
- Hive version: 2.2.3
- Hive generator version: 1.1.3
Metadata
Metadata
Assignees
Labels
problemAn unconfirmed bug.An unconfirmed bug.