From 6a958309b095c88a46d0106f01a83d80807911db Mon Sep 17 00:00:00 2001 From: mappu Date: Fri, 20 Sep 2024 19:13:15 +1200 Subject: [PATCH] genbindings/go: simpler enum naming --- cmd/genbindings/emitgo.go | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/cmd/genbindings/emitgo.go b/cmd/genbindings/emitgo.go index b0796a4..432e234 100644 --- a/cmd/genbindings/emitgo.go +++ b/cmd/genbindings/emitgo.go @@ -405,8 +405,18 @@ import "C" continue // Removed by transformRedundant AST pass } + // Fully qualified name of the enum itself goEnumName := cabiClassName(e.EnumName) + // Shorter name, so that enum elements are reachable from the surrounding + // namespace + // Strip back one single :: pair from the generated variable name + nameParts := strings.Split(e.EnumName, `::`) + if len(nameParts) > 1 { + nameParts = nameParts[0 : len(nameParts)-1] + } + goEnumShortName := cabiClassName(strings.Join(nameParts, `::`)) + ret.WriteString(` type ` + goEnumName + ` ` + e.UnderlyingType.RenderTypeGo() + ` `) @@ -416,7 +426,7 @@ import "C" ret.WriteString("const (\n") for _, ee := range e.Entries { - ret.WriteString(cabiClassName(goEnumName+"::"+ee.EntryName) + " " + goEnumName + " = " + ee.EntryValue + "\n") + ret.WriteString(titleCase(cabiClassName(goEnumShortName+"::"+ee.EntryName)) + " " + goEnumName + " = " + ee.EntryValue + "\n") } ret.WriteString("\n)\n\n")