Fix 64-bit numeric enum values in typescript (#7135)

* Fix 64-bit default numeric enum values in typescript

If you had a default value that wasn't a valid enum value (e.g., a zero
if you used a bit_flag setting, like you get with AdvancedFeatures
in reflection.fbs), we weren't using BigInt.

* Run generate_code.py

* [DART] Handle deprecated fields & invalid enum defaults

* Update .NET test
This commit is contained in:
James Kuszmaul
2022-03-04 21:57:48 -08:00
committed by GitHub
parent 1a4c405662
commit 9ed1323044
39 changed files with 1342 additions and 275 deletions

View File

@@ -58,6 +58,8 @@ type MonsterT struct {
Testrequirednestedflatbuffer []byte
ScalarKeySortedTables []*StatT
NativeInline *TestT
LongEnumNonEnumDefault LongEnum
LongEnumNormalDefault LongEnum
}
func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
@@ -316,6 +318,8 @@ func (t *MonsterT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
MonsterAddScalarKeySortedTables(builder, scalarKeySortedTablesOffset)
nativeInlineOffset := t.NativeInline.Pack(builder)
MonsterAddNativeInline(builder, nativeInlineOffset)
MonsterAddLongEnumNonEnumDefault(builder, t.LongEnumNonEnumDefault)
MonsterAddLongEnumNormalDefault(builder, t.LongEnumNormalDefault)
return MonsterEnd(builder)
}
@@ -455,6 +459,8 @@ func (rcv *Monster) UnPackTo(t *MonsterT) {
t.ScalarKeySortedTables[j] = x.UnPack()
}
t.NativeInline = rcv.NativeInline(nil).UnPack()
t.LongEnumNonEnumDefault = rcv.LongEnumNonEnumDefault()
t.LongEnumNormalDefault = rcv.LongEnumNormalDefault()
}
func (rcv *Monster) UnPack() *MonsterT {
@@ -1356,8 +1362,32 @@ func (rcv *Monster) NativeInline(obj *Test) *Test {
return nil
}
func (rcv *Monster) LongEnumNonEnumDefault() LongEnum {
o := flatbuffers.UOffsetT(rcv._tab.Offset(108))
if o != 0 {
return LongEnum(rcv._tab.GetUint64(o + rcv._tab.Pos))
}
return 0
}
func (rcv *Monster) MutateLongEnumNonEnumDefault(n LongEnum) bool {
return rcv._tab.MutateUint64Slot(108, uint64(n))
}
func (rcv *Monster) LongEnumNormalDefault() LongEnum {
o := flatbuffers.UOffsetT(rcv._tab.Offset(110))
if o != 0 {
return LongEnum(rcv._tab.GetUint64(o + rcv._tab.Pos))
}
return 2
}
func (rcv *Monster) MutateLongEnumNormalDefault(n LongEnum) bool {
return rcv._tab.MutateUint64Slot(110, uint64(n))
}
func MonsterStart(builder *flatbuffers.Builder) {
builder.StartObject(52)
builder.StartObject(54)
}
func MonsterAddPos(builder *flatbuffers.Builder, pos flatbuffers.UOffsetT) {
builder.PrependStructSlot(0, flatbuffers.UOffsetT(pos), 0)
@@ -1572,6 +1602,12 @@ func MonsterStartScalarKeySortedTablesVector(builder *flatbuffers.Builder, numEl
func MonsterAddNativeInline(builder *flatbuffers.Builder, nativeInline flatbuffers.UOffsetT) {
builder.PrependStructSlot(51, flatbuffers.UOffsetT(nativeInline), 0)
}
func MonsterAddLongEnumNonEnumDefault(builder *flatbuffers.Builder, longEnumNonEnumDefault LongEnum) {
builder.PrependUint64Slot(52, uint64(longEnumNonEnumDefault), 0)
}
func MonsterAddLongEnumNormalDefault(builder *flatbuffers.Builder, longEnumNormalDefault LongEnum) {
builder.PrependUint64Slot(53, uint64(longEnumNormalDefault), 2)
}
func MonsterEnd(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
return builder.EndObject()
}