Skip to content

cue: Value.Syntax panics when a package identifier starts with an underscore #3968

@rogpeppe

Description

@rogpeppe

What version of CUE are you using (cue version)?

250524b0d6e0a2d64e2be220d55334ef62d65df6

Does this issue reproduce with the latest stable release?

Yes

What did you do?

exec cue def x.cue

-- x.cue --
package x

import _string "strings"

x: _string.ToUpper("foo")

What did you expect to see?

A passing test.

What did you see instead?

> exec cue def x.cue
[stderr]
panic: not a string label

goroutine 1 gp=0xc000002380 m=0 mp=0x19c0360 [running]:
panic({0xf04880?, 0x1252250?})
	/home/rogpeppe/go/src/runtime/panic.go:802 +0x168 fp=0xc00033b578 sp=0xc00033b4c8 pc=0x47aac8
cuelang.org/go/internal/core/adt.Feature.StringValue(0x0?, {0x125efa0?, 0xc0003100c0?})
	/home/rogpeppe/src/cuelabs/cue2/internal/core/adt/feature.go:121 +0x5d fp=0xc00033b598 sp=0xc00033b578 pc=0x731f7d
cuelang.org/go/internal/core/export.(*exporter).resolve(0xc0000e0370, 0xc0003149e0, {0x1260b20?, 0xc000318300})
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/adt.go:492 +0x528 fp=0xc00033b760 sp=0xc00033b598 pc=0x76ac08
cuelang.org/go/internal/core/export.(*exporter).adt(0xc0000e0370, 0xc0003149e0, {0x75f4bd66a7e8?, 0xc000318300})
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/adt.go:139 +0x665 fp=0xc00033bc88 sp=0xc00033b760 pc=0x767485
cuelang.org/go/internal/core/export.(*exporter).expr(0xc0000e0370, 0xc0003149e0?, {0x75f4bd66a7e8?, 0xc000318300})
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/expr.go:101 +0x3d5 fp=0xc00033be40 sp=0xc00033bc88 pc=0x773835
cuelang.org/go/internal/core/export.(*exporter).innerExpr(...)
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/expr.go:63
cuelang.org/go/internal/core/export.(*exporter).resolve(0xc0000e0370, 0xc0003149e0, {0x1260b50?, 0xc000314420})
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/adt.go:506 +0xd3f fp=0xc00033c008 sp=0xc00033be40 pc=0x76b41f
cuelang.org/go/internal/core/export.(*exporter).adt(0xc0000e0370, 0xc0003149e0, {0x75f4bd66a7b0?, 0xc000314420})
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/adt.go:139 +0x665 fp=0xc00033c530 sp=0xc00033c008 pc=0x767485
cuelang.org/go/internal/core/export.(*exporter).expr(0xc0000e0370, 0xc0003149e0?, {0x75f4bd66a7b0?, 0xc000314420})
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/expr.go:101 +0x3d5 fp=0xc00033c6e8 sp=0xc00033c530 pc=0x773835
cuelang.org/go/internal/core/export.(*exporter).innerExpr(...)
	/home/rogpeppe/src/cuelabs/cue2/intts: exit 1
ernal/core/export/expr.go:63
cuelang.org/go/internal/core/export.(*exporter).adt(0xc0000e0370, 0xc0003149e0, {0x12623f0?, 0xc00032e270})
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/adt.go:254 +0x2df7 fp=0xc00033cc10 sp=0xc00033c6e8 pc=0x769c17
cuelang.org/go/internal/core/export.(*exporter).expr(0xc0000e0370, 0xc0003149e0?, {0x12623f0?, 0xc00032e270})
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/expr.go:101 +0x3d5 fp=0xc00033cdc8 sp=0xc00033cc10 pc=0x773835
cuelang.org/go/internal/core/export.(*conjuncts).addExpr(0xc00033d1f8, 0xc0003149e0, 0xc000307b80, {0x12623f0, 0xc00032e270}, 0x0)
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/expr.go:482 +0x4cd fp=0xc00033cf60 sp=0xc00033cdc8 pc=0x77724d
cuelang.org/go/internal/core/export.(*exporter).mergeValues(0xc0000e0370, 0x11?, 0xc000307b80, {0xc000333e50, 0x1, 0xc00033dc10?}, {0xc000333ef0, 0x1, 0x1})
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/expr.go:155 +0x725 fp=0xc00033d660 sp=0xc00033cf60 pc=0x7742a5
cuelang.org/go/internal/core/export.(*exporter).mergeValues(0xc0000e0370, 0x75a03d?, 0xc000307ae0, {0xc000333d60, 0x1, 0x1?}, {0xc000332410, 0x1, 0x1})
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/expr.go:261 +0x168f fp=0xc00033dd60 sp=0xc00033d660 pc=0x77520f
cuelang.org/go/internal/core/export.(*exporter).expr(0xc0000e0370, 0x12685d0?, {0x1261d48?, 0xc000307ae0})
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/expr.go:91 +0x127 fp=0xc00033df18 sp=0xc00033dd60 pc=0x773587
cuelang.org/go/internal/core/export.(*Profile).Def(0xc00029f943, {0x12685d0?, 0xc0003100c0?}, {0xc00029f9d0?, 0xc000307b80?}, 0xc000307ae0)
	/home/rogpeppe/src/cuelabs/cue2/internal/core/export/export.go:124 +0xd6 fp=0xc00033e030 sp=0xc00033df18 pc=0x76f816
cuelang.org/go/cue.Value.Syntax({0xc0003100c0?, 0xc000307ae0?, 0x0?}, {0xc000310b80, 0x7, 0x0?})
	/home/rogpeppe/src/cuelabs/cue2/cue/types.go:900 +0x27e fp=0xc00033e138 sp=0xc00033e030 pc=0x956f5e
cuelang.org/go/internal/encoding.NewEncoder.func4({0xc0003100c0?, 0xc000307ae0?, 0x0?})
	/home/rogpeppe/src/cuelabs/cue2/internal/encoding/encoder.go:165 +0x37 fp=0xc00033e180 sp=0xc00033e138 pc=0xa9cb97
cuelang.org/go/internal/encoding.(*Encoder).Encode(0xc000310b40, {0xc0003100c0?, 0xc000307ae0?, 0x0?})
	/home/rogpeppe/src/cuelabs/cue2/internal/encoding/encoder.go:270 +0xb9 fp=0xc00033e1f0 sp=0xc00033e180 pc=0xa9d679
cuelang.org/go/cmd/cue/cmd.runDef(0xc0002da660, {0xc0002b7f50, 0x1, 0x1})
	/home/rogpeppe/src/cuelabs/cue2/cmd/cue/cmd/def.go:72 +0x1c5 fp=0xc00033e2b8 sp=0xc00033e1f0 pc=0xda9c85
cuelang.org/go/cmd/cue/cmd.newDefCmd.mkRunE.func1(0xc0002ee500?, {0xc0002b7f50, 0x1, 0x1})
	/home/rogpeppe/src/cuelabs/cue2/cmd/cue/cmd/root.go:154 +0x302 fp=0xc00033e528 sp=0xc00033e2b8 pc=0xda9542
github.com/spf13/cobra.(*Command).execute(0xc0002eaf08, {0xc0002b7f10, 0x1, 0x1})
	/home/rogpeppe/src/go/pkg/mod/github.com/spf13/[email protected]/command.go:1015 +0xaaa fp=0xc00033e6a8 sp=0xc00033e528 pc=0x60718a
github.com/spf13/cobra.(*Command).ExecuteC(0xc0002ea008)
	/home/rogpeppe/src/go/pkg/mod/github.com/spf13/[email protected]/command.go:1148 +0x46f fp=0xc00033e798 sp=0xc00033e6a8 pc=0x607acf
github.com/spf13/cobra.(*Command).Execute(...)
	/home/rogpeppe/src/go/pkg/mod/github.com/spf13/[email protected]/command.go:1071
github.com/spf13/cobra.(*Command).ExecuteContext(...)
	/home/rogpeppe/src/go/pkg/mod/github.com/spf13/[email protected]/command.go:1064
cuelang.org/go/cmd/cue/cmd.(*Command).Run(0xc0002da660, {0x1261fb8?, 0xc0002db4a0?})
	/home/rogpeppe/src/cuelabs/cue2/cmd/cue/cmd/root.go:406 +0x5c fp=0xc00033e7b0 sp=0xc00033e798 pc=0xdd98fc
cuelang.org/go/cmd/cue/cmd.Main()
	/home/rogpeppe/src/cuelabs/cue2/cmd/cue/cmd/root.go:305 +0x138 fp=0xc00033ff38 sp=0xc00033e7b0 pc=0xdd9238
main.main()
	/home/rogpeppe/src/cuelabs/cue2/cmd/cue/main.go:24 +0x13 fp=0xc00033ff50 sp=0xc00033ff38 pc=0xe040f3
runtime.main()
	/home/rogpeppe/go/src/runtime/proc.go:283 +0x28b fp=0xc00033ffe0 sp=0xc00033ff50 pc=0x4458ab
runtime.goexit({})
	/home/rogpeppe/go/src/runtime/asm_amd64.s:1692 +0x1 fp=0xc00033ffe8 sp=0xc00033ffe0 pc=0x483481
[exit status 2]
FAIL: /tmp/x.txtar:1: unexpected command failure

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions