encoding/protobuf: don't rely on verbatim Ident formatting
Parse the expressions into proper CUE before
formatting.
Change-Id: I66fdf247c7f5d949aa76aa46906b36656c502f25
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/4721
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/encoding/protobuf/parse.go b/encoding/protobuf/parse.go
index a58943d..b35e6ae 100644
--- a/encoding/protobuf/parse.go
+++ b/encoding/protobuf/parse.go
@@ -291,9 +291,11 @@
}
func (p *protoConverter) toExpr(pos scanner.Position, name string) (expr ast.Expr) {
- a := strings.Split(name, ".")
- expr = &ast.Ident{NamePos: p.toCUEPos(pos), Name: a[0]}
- expr = ast.NewSel(expr, a[1:]...)
+ expr, err := parser.ParseExpr("", name, parser.ParseComments)
+ if err != nil {
+ panic(err)
+ }
+ ast.SetPos(expr, p.toCUEPos(pos))
return expr
}