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