oracle: fix panic when describing "unsafe"
Fixes issue 14160
Change-Id: Ie27d79ba135cadd2e6f5d3b40b8eca25b6a030d9
Reviewed-on: https://go-review.googlesource.com/19158
Reviewed-by: Michael Matloob <matloob@golang.org>
diff --git a/oracle/describe.go b/oracle/describe.go
index 2743f67..70ddacf 100644
--- a/oracle/describe.go
+++ b/oracle/describe.go
@@ -680,6 +680,12 @@
return "const"
case *types.PkgName:
return "package"
+ case *types.Builtin:
+ return "builtin" // e.g. when describing package "unsafe"
+ case *types.Nil:
+ return "nil"
+ case *types.Label:
+ return "label"
}
panic(o)
}
diff --git a/oracle/testdata/src/describe/main.go b/oracle/testdata/src/describe/main.go
index 1cdcd3c..f48d6d0 100644
--- a/oracle/testdata/src/describe/main.go
+++ b/oracle/testdata/src/describe/main.go
@@ -9,6 +9,7 @@
import (
"nosuchpkg" // @describe badimport1 "nosuchpkg"
nosuchpkg2 "nosuchpkg" // @describe badimport2 "nosuchpkg2"
+ _ "unsafe" // @describe unsafe "unsafe"
)
var _ nosuchpkg.T
diff --git a/oracle/testdata/src/describe/main.golden b/oracle/testdata/src/describe/main.golden
index 74b0f80..bc6d9f7 100644
--- a/oracle/testdata/src/describe/main.golden
+++ b/oracle/testdata/src/describe/main.golden
@@ -19,6 +19,13 @@
-------- @describe badimport2 --------
Error: can't import package "nosuchpkg"
+-------- @describe unsafe --------
+import of package "unsafe"
+ builtin Alignof
+ builtin Offsetof
+ type Pointer unsafe.Pointer
+ builtin Sizeof
+
-------- @describe type-ref-builtin --------
reference to built-in type float64