Dart null safety (#6696)

* Dart null-safety - prepare migration annotations in library files

* Dart null-safety - apply migration

* Dart null-safety - update flatc to generate valid code

* Dart null-safety - fix flatc generated code and adjust tests

* Dart null-safety - update example and the generated code in the tests folder

* Dart null safety - minor review changes

* Dart - apply `dartfmt -w .`
This commit is contained in:
Ivan Dlugos
2021-06-22 17:54:57 +02:00
committed by GitHub
parent 71d43f3be9
commit a6ee335574
23 changed files with 3352 additions and 2649 deletions

View File

@@ -1,5 +1,5 @@
// automatically generated by the FlatBuffers compiler, do not modify
// ignore_for_file: unused_import, unused_field, unused_local_variable
// ignore_for_file: unused_import, unused_field, unused_element, unused_local_variable
library namespace_a;
@@ -20,16 +20,16 @@ class TableInFirstNS {
final fb.BufferContext _bc;
final int _bcOffset;
namespace_a_namespace_b.TableInNestedNS get fooTable => namespace_a_namespace_b.TableInNestedNS.reader.vTableGet(_bc, _bcOffset, 4, null);
EnumInNestedNS get fooEnum => new EnumInNestedNS.fromValue(const fb.Int8Reader().vTableGet(_bc, _bcOffset, 6, 0));
UnionInNestedNSTypeId get fooUnionType => new UnionInNestedNSTypeId.fromValue(const fb.Uint8Reader().vTableGet(_bc, _bcOffset, 8, 0));
dynamic get fooUnion {
namespace_a_namespace_b.TableInNestedNS? get fooTable => namespace_a_namespace_b.TableInNestedNS.reader.vTableGetNullable(_bc, _bcOffset, 4);
EnumInNestedNS get fooEnum => EnumInNestedNS.fromValue(const fb.Int8Reader().vTableGet(_bc, _bcOffset, 6, 0));
UnionInNestedNSTypeId? get fooUnionType => UnionInNestedNSTypeId._createOrNull(const fb.Uint8Reader().vTableGetNullable(_bc, _bcOffset, 8));
dynamic? get fooUnion {
switch (fooUnionType?.value) {
case 1: return TableInNestedNS.reader.vTableGet(_bc, _bcOffset, 10, null);
case 1: return TableInNestedNS.reader.vTableGetNullable(_bc, _bcOffset, 10);
default: return null;
}
}
namespace_a_namespace_b.StructInNestedNS get fooStruct => namespace_a_namespace_b.StructInNestedNS.reader.vTableGet(_bc, _bcOffset, 12, null);
namespace_a_namespace_b.StructInNestedNS? get fooStruct => namespace_a_namespace_b.StructInNestedNS.reader.vTableGetNullable(_bc, _bcOffset, 12);
@override
String toString() {
@@ -43,42 +43,36 @@ class TableInFirstNS {
fooUnion: fooUnion,
fooStruct: fooStruct?.unpack());
static int pack(fb.Builder fbBuilder, TableInFirstNST object) {
static int pack(fb.Builder fbBuilder, TableInFirstNST? object) {
if (object == null) return 0;
return object.pack(fbBuilder);
}
}
class TableInFirstNST {
namespace_a_namespace_b.TableInNestedNST fooTable;
namespace_a_namespace_b.TableInNestedNST? fooTable;
EnumInNestedNS fooEnum;
UnionInNestedNSTypeId fooUnionType;
dynamic fooUnion;
namespace_a_namespace_b.StructInNestedNST fooStruct;
UnionInNestedNSTypeId? fooUnionType;
dynamic? fooUnion;
namespace_a_namespace_b.StructInNestedNST? fooStruct;
TableInFirstNST({
this.fooTable,
this.fooEnum,
this.fooEnum = EnumInNestedNS.A,
this.fooUnionType,
this.fooUnion,
this.fooStruct});
int pack(fb.Builder fbBuilder) {
assert(fbBuilder != null);
final int fooTableOffset = fooTable?.pack(fbBuilder);
final int fooUnionOffset = fooUnion?.pack(fbBuilder);
final int? fooTableOffset = fooTable?.pack(fbBuilder);
final int? fooUnionOffset = fooUnion?.pack(fbBuilder);
fbBuilder.startTable();
if (fooTableOffset != null) {
fbBuilder.addOffset(0, fooTableOffset);
}
fbBuilder.addInt8(1, fooEnum?.value);
fbBuilder.addOffset(0, fooTableOffset);
fbBuilder.addInt8(1, fooEnum.value);
fbBuilder.addUint8(2, fooUnionType?.value);
if (fooUnionOffset != null) {
fbBuilder.addOffset(3, fooUnionOffset);
}
fbBuilder.addOffset(3, fooUnionOffset);
if (fooStruct != null) {
fbBuilder.addStruct(4, fooStruct.pack(fbBuilder));
fbBuilder.addStruct(4, fooStruct!.pack(fbBuilder));
}
return fbBuilder.endTable();
}
@@ -98,9 +92,7 @@ class _TableInFirstNSReader extends fb.TableReader<TableInFirstNS> {
}
class TableInFirstNSBuilder {
TableInFirstNSBuilder(this.fbBuilder) {
assert(fbBuilder != null);
}
TableInFirstNSBuilder(this.fbBuilder) {}
final fb.Builder fbBuilder;
@@ -108,19 +100,19 @@ class TableInFirstNSBuilder {
fbBuilder.startTable();
}
int addFooTableOffset(int offset) {
int addFooTableOffset(int? offset) {
fbBuilder.addOffset(0, offset);
return fbBuilder.offset;
}
int addFooEnum(EnumInNestedNS fooEnum) {
int addFooEnum(EnumInNestedNS? fooEnum) {
fbBuilder.addInt8(1, fooEnum?.value);
return fbBuilder.offset;
}
int addFooUnionType(UnionInNestedNSTypeId fooUnionType) {
int addFooUnionType(UnionInNestedNSTypeId? fooUnionType) {
fbBuilder.addUint8(2, fooUnionType?.value);
return fbBuilder.offset;
}
int addFooUnionOffset(int offset) {
int addFooUnionOffset(int? offset) {
fbBuilder.addOffset(3, offset);
return fbBuilder.offset;
}
@@ -135,18 +127,18 @@ class TableInFirstNSBuilder {
}
class TableInFirstNSObjectBuilder extends fb.ObjectBuilder {
final namespace_a_namespace_b.TableInNestedNSObjectBuilder _fooTable;
final EnumInNestedNS _fooEnum;
final UnionInNestedNSTypeId _fooUnionType;
final dynamic _fooUnion;
final namespace_a_namespace_b.StructInNestedNSObjectBuilder _fooStruct;
final namespace_a_namespace_b.TableInNestedNSObjectBuilder? _fooTable;
final EnumInNestedNS? _fooEnum;
final UnionInNestedNSTypeId? _fooUnionType;
final dynamic? _fooUnion;
final namespace_a_namespace_b.StructInNestedNSObjectBuilder? _fooStruct;
TableInFirstNSObjectBuilder({
namespace_a_namespace_b.TableInNestedNSObjectBuilder fooTable,
EnumInNestedNS fooEnum,
UnionInNestedNSTypeId fooUnionType,
dynamic fooUnion,
namespace_a_namespace_b.StructInNestedNSObjectBuilder fooStruct,
namespace_a_namespace_b.TableInNestedNSObjectBuilder? fooTable,
EnumInNestedNS? fooEnum,
UnionInNestedNSTypeId? fooUnionType,
dynamic? fooUnion,
namespace_a_namespace_b.StructInNestedNSObjectBuilder? fooStruct,
})
: _fooTable = fooTable,
_fooEnum = fooEnum,
@@ -156,30 +148,23 @@ class TableInFirstNSObjectBuilder extends fb.ObjectBuilder {
/// Finish building, and store into the [fbBuilder].
@override
int finish(
fb.Builder fbBuilder) {
assert(fbBuilder != null);
final int fooTableOffset = _fooTable?.getOrCreateOffset(fbBuilder);
final int fooUnionOffset = _fooUnion?.getOrCreateOffset(fbBuilder);
int finish(fb.Builder fbBuilder) {
final int? fooTableOffset = _fooTable?.getOrCreateOffset(fbBuilder);
final int? fooUnionOffset = _fooUnion?.getOrCreateOffset(fbBuilder);
fbBuilder.startTable();
if (fooTableOffset != null) {
fbBuilder.addOffset(0, fooTableOffset);
}
fbBuilder.addOffset(0, fooTableOffset);
fbBuilder.addInt8(1, _fooEnum?.value);
fbBuilder.addUint8(2, _fooUnionType?.value);
if (fooUnionOffset != null) {
fbBuilder.addOffset(3, fooUnionOffset);
}
fbBuilder.addOffset(3, fooUnionOffset);
if (_fooStruct != null) {
fbBuilder.addStruct(4, _fooStruct.finish(fbBuilder));
fbBuilder.addStruct(4, _fooStruct!.finish(fbBuilder));
}
return fbBuilder.endTable();
}
/// Convenience method to serialize to byte list.
@override
Uint8List toBytes([String fileIdentifier]) {
Uint8List toBytes([String? fileIdentifier]) {
fb.Builder fbBuilder = new fb.Builder();
int offset = finish(fbBuilder);
return fbBuilder.finish(offset, fileIdentifier);
@@ -197,7 +182,7 @@ class SecondTableInA {
final fb.BufferContext _bc;
final int _bcOffset;
namespace_c.TableInC get referToC => namespace_c.TableInC.reader.vTableGet(_bc, _bcOffset, 4, null);
namespace_c.TableInC? get referToC => namespace_c.TableInC.reader.vTableGetNullable(_bc, _bcOffset, 4);
@override
String toString() {
@@ -207,26 +192,22 @@ class SecondTableInA {
SecondTableInAT unpack() => SecondTableInAT(
referToC: referToC?.unpack());
static int pack(fb.Builder fbBuilder, SecondTableInAT object) {
static int pack(fb.Builder fbBuilder, SecondTableInAT? object) {
if (object == null) return 0;
return object.pack(fbBuilder);
}
}
class SecondTableInAT {
namespace_c.TableInCT referToC;
namespace_c.TableInCT? referToC;
SecondTableInAT({
this.referToC});
int pack(fb.Builder fbBuilder) {
assert(fbBuilder != null);
final int referToCOffset = referToC?.pack(fbBuilder);
final int? referToCOffset = referToC?.pack(fbBuilder);
fbBuilder.startTable();
if (referToCOffset != null) {
fbBuilder.addOffset(0, referToCOffset);
}
fbBuilder.addOffset(0, referToCOffset);
return fbBuilder.endTable();
}
@@ -245,9 +226,7 @@ class _SecondTableInAReader extends fb.TableReader<SecondTableInA> {
}
class SecondTableInABuilder {
SecondTableInABuilder(this.fbBuilder) {
assert(fbBuilder != null);
}
SecondTableInABuilder(this.fbBuilder) {}
final fb.Builder fbBuilder;
@@ -255,7 +234,7 @@ class SecondTableInABuilder {
fbBuilder.startTable();
}
int addReferToCOffset(int offset) {
int addReferToCOffset(int? offset) {
fbBuilder.addOffset(0, offset);
return fbBuilder.offset;
}
@@ -266,30 +245,25 @@ class SecondTableInABuilder {
}
class SecondTableInAObjectBuilder extends fb.ObjectBuilder {
final namespace_c.TableInCObjectBuilder _referToC;
final namespace_c.TableInCObjectBuilder? _referToC;
SecondTableInAObjectBuilder({
namespace_c.TableInCObjectBuilder referToC,
namespace_c.TableInCObjectBuilder? referToC,
})
: _referToC = referToC;
/// Finish building, and store into the [fbBuilder].
@override
int finish(
fb.Builder fbBuilder) {
assert(fbBuilder != null);
final int referToCOffset = _referToC?.getOrCreateOffset(fbBuilder);
int finish(fb.Builder fbBuilder) {
final int? referToCOffset = _referToC?.getOrCreateOffset(fbBuilder);
fbBuilder.startTable();
if (referToCOffset != null) {
fbBuilder.addOffset(0, referToCOffset);
}
fbBuilder.addOffset(0, referToCOffset);
return fbBuilder.endTable();
}
/// Convenience method to serialize to byte list.
@override
Uint8List toBytes([String fileIdentifier]) {
Uint8List toBytes([String? fileIdentifier]) {
fb.Builder fbBuilder = new fb.Builder();
int offset = finish(fbBuilder);
return fbBuilder.finish(offset, fileIdentifier);