mirror of
https://github.com/google/flatbuffers.git
synced 2026-06-27 11:22:18 +00:00
[Go] Fix GenNativeUnionUnPack for imported union type. (#7579)
* Fix GenNativeUnionUnPack for imported union type. * Update test results. Co-authored-by: Derek Bailey <derekbailey@google.com>
This commit is contained in:
@@ -906,7 +906,10 @@ class GoGenerator : public BaseGenerator {
|
|||||||
const EnumVal &ev = **it2;
|
const EnumVal &ev = **it2;
|
||||||
if (ev.IsZero()) continue;
|
if (ev.IsZero()) continue;
|
||||||
code += "\tcase " + namer_.EnumVariant(enum_def, ev) + ":\n";
|
code += "\tcase " + namer_.EnumVariant(enum_def, ev) + ":\n";
|
||||||
code += "\t\tx := " + ev.union_type.struct_def->name + "{_tab: table}\n";
|
code += "\t\tvar x " +
|
||||||
|
WrapInNameSpaceAndTrack(*ev.union_type.struct_def) +
|
||||||
|
"\n";
|
||||||
|
code += "\t\tx.Init(table.Bytes, table.Pos)\n";
|
||||||
|
|
||||||
code += "\t\treturn &" +
|
code += "\t\treturn &" +
|
||||||
WrapInNameSpaceAndTrack(enum_def.defined_namespace,
|
WrapInNameSpaceAndTrack(enum_def.defined_namespace,
|
||||||
|
|||||||
@@ -63,13 +63,16 @@ func (t *AnyT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffsetT {
|
|||||||
func (rcv Any) UnPack(table flatbuffers.Table) *AnyT {
|
func (rcv Any) UnPack(table flatbuffers.Table) *AnyT {
|
||||||
switch rcv {
|
switch rcv {
|
||||||
case AnyMonster:
|
case AnyMonster:
|
||||||
x := Monster{_tab: table}
|
var x Monster
|
||||||
|
x.Init(table.Bytes, table.Pos)
|
||||||
return &AnyT{ Type: AnyMonster, Value: x.UnPack() }
|
return &AnyT{ Type: AnyMonster, Value: x.UnPack() }
|
||||||
case AnyTestSimpleTableWithEnum:
|
case AnyTestSimpleTableWithEnum:
|
||||||
x := TestSimpleTableWithEnum{_tab: table}
|
var x TestSimpleTableWithEnum
|
||||||
|
x.Init(table.Bytes, table.Pos)
|
||||||
return &AnyT{ Type: AnyTestSimpleTableWithEnum, Value: x.UnPack() }
|
return &AnyT{ Type: AnyTestSimpleTableWithEnum, Value: x.UnPack() }
|
||||||
case AnyMyGame_Example2_Monster:
|
case AnyMyGame_Example2_Monster:
|
||||||
x := Monster{_tab: table}
|
var x MyGame__Example2.Monster
|
||||||
|
x.Init(table.Bytes, table.Pos)
|
||||||
return &AnyT{ Type: AnyMyGame_Example2_Monster, Value: x.UnPack() }
|
return &AnyT{ Type: AnyMyGame_Example2_Monster, Value: x.UnPack() }
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -61,13 +61,16 @@ func (t *AnyAmbiguousAliasesT) Pack(builder *flatbuffers.Builder) flatbuffers.UO
|
|||||||
func (rcv AnyAmbiguousAliases) UnPack(table flatbuffers.Table) *AnyAmbiguousAliasesT {
|
func (rcv AnyAmbiguousAliases) UnPack(table flatbuffers.Table) *AnyAmbiguousAliasesT {
|
||||||
switch rcv {
|
switch rcv {
|
||||||
case AnyAmbiguousAliasesM1:
|
case AnyAmbiguousAliasesM1:
|
||||||
x := Monster{_tab: table}
|
var x Monster
|
||||||
|
x.Init(table.Bytes, table.Pos)
|
||||||
return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM1, Value: x.UnPack() }
|
return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM1, Value: x.UnPack() }
|
||||||
case AnyAmbiguousAliasesM2:
|
case AnyAmbiguousAliasesM2:
|
||||||
x := Monster{_tab: table}
|
var x Monster
|
||||||
|
x.Init(table.Bytes, table.Pos)
|
||||||
return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM2, Value: x.UnPack() }
|
return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM2, Value: x.UnPack() }
|
||||||
case AnyAmbiguousAliasesM3:
|
case AnyAmbiguousAliasesM3:
|
||||||
x := Monster{_tab: table}
|
var x Monster
|
||||||
|
x.Init(table.Bytes, table.Pos)
|
||||||
return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM3, Value: x.UnPack() }
|
return &AnyAmbiguousAliasesT{ Type: AnyAmbiguousAliasesM3, Value: x.UnPack() }
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
@@ -63,13 +63,16 @@ func (t *AnyUniqueAliasesT) Pack(builder *flatbuffers.Builder) flatbuffers.UOffs
|
|||||||
func (rcv AnyUniqueAliases) UnPack(table flatbuffers.Table) *AnyUniqueAliasesT {
|
func (rcv AnyUniqueAliases) UnPack(table flatbuffers.Table) *AnyUniqueAliasesT {
|
||||||
switch rcv {
|
switch rcv {
|
||||||
case AnyUniqueAliasesM:
|
case AnyUniqueAliasesM:
|
||||||
x := Monster{_tab: table}
|
var x Monster
|
||||||
|
x.Init(table.Bytes, table.Pos)
|
||||||
return &AnyUniqueAliasesT{ Type: AnyUniqueAliasesM, Value: x.UnPack() }
|
return &AnyUniqueAliasesT{ Type: AnyUniqueAliasesM, Value: x.UnPack() }
|
||||||
case AnyUniqueAliasesTS:
|
case AnyUniqueAliasesTS:
|
||||||
x := TestSimpleTableWithEnum{_tab: table}
|
var x TestSimpleTableWithEnum
|
||||||
|
x.Init(table.Bytes, table.Pos)
|
||||||
return &AnyUniqueAliasesT{ Type: AnyUniqueAliasesTS, Value: x.UnPack() }
|
return &AnyUniqueAliasesT{ Type: AnyUniqueAliasesTS, Value: x.UnPack() }
|
||||||
case AnyUniqueAliasesM2:
|
case AnyUniqueAliasesM2:
|
||||||
x := Monster{_tab: table}
|
var x MyGame__Example2.Monster
|
||||||
|
x.Init(table.Bytes, table.Pos)
|
||||||
return &AnyUniqueAliasesT{ Type: AnyUniqueAliasesM2, Value: x.UnPack() }
|
return &AnyUniqueAliasesT{ Type: AnyUniqueAliasesM2, Value: x.UnPack() }
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|||||||
Reference in New Issue
Block a user