Skip to content

Commit 05ceba6

Browse files
uhthomasmvdan
authored andcommitted
cmd/cue: support unsafe pointer in get go
Fixes #2641 Change-Id: Ie77cc7d326cdcc5980d0432e0caf3a6bb0de2c8e Signed-off-by: Thomas Way <[email protected]> Reviewed-on: https://review.gerrithub.io/c/cue-lang/cue/+/1171292 Reviewed-by: Daniel Martí <[email protected]> TryBot-Result: CUEcueckoo <[email protected]> Unity-Result: CUE porcuepine <[email protected]>
1 parent 200a8ec commit 05ceba6

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

cmd/cue/cmd/get_go.go

+4-4
Original file line numberDiff line numberDiff line change
@@ -1139,13 +1139,13 @@ func (e *extractor) makeType(expr types.Type) (result cueast.Expr) {
11391139
}
11401140

11411141
case *types.Basic:
1142-
switch t := x.String(); t {
1143-
case "uintptr":
1142+
switch x.Kind() {
1143+
case types.Uintptr, types.UnsafePointer:
11441144
return e.ident("uint64", false)
1145-
case "byte":
1145+
case types.Byte:
11461146
return e.ident("uint8", false)
11471147
default:
1148-
return e.ident(t, false)
1148+
return e.ident(x.String(), false)
11491149
}
11501150

11511151
case *types.Interface:

cmd/cue/cmd/testdata/script/get_go_types.txtar

+19
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ cmp ./pkg3/pkg3_go_gen.cue ./pkg3/pkg3_go_gen.cue.golden
1212
cmp ./pkg1/file1_go_gen.cue ./pkg1/file1_go_gen.cue.golden
1313
cmp ./pkg1/alias_go_gen.cue ./pkg1/alias_go_gen.cue.golden
1414
cmp ./pkg2/pkg2_go_gen.cue ./pkg2/pkg2_go_gen.cue.golden
15+
cmp ./pkg4/pkg4_go_gen.cue ./pkg4/pkg4_go_gen.cue.golden
1516

1617
# Verify dependencies did not change
1718
cmp go.mod go.mod.golden
@@ -414,3 +415,21 @@ package pkg3
414415
import "mod.test/pkg2:pkgtwo"
415416

416417
#Barzer: pkgtwo.#Barzer
418+
-- pkg4/pkg4.go --
419+
package pkg4
420+
421+
import "unsafe"
422+
423+
type A struct {
424+
UnsafePointer unsafe.Pointer
425+
}
426+
-- pkg4/pkg4_go_gen.cue.golden --
427+
// Code generated by cue get go. DO NOT EDIT.
428+
429+
//cue:generate cue get go mod.test/pkg4
430+
431+
package pkg4
432+
433+
#A: {
434+
UnsafePointer: uint64 @go(,unsafe.Pointer)
435+
}

0 commit comments

Comments
 (0)