diff --git a/encoding/gocode/generator.go b/encoding/gocode/generator.go
index 557bdcd..f1e8166 100644
--- a/encoding/gocode/generator.go
+++ b/encoding/gocode/generator.go
@@ -139,7 +139,7 @@
 		pkgName = g.pkg.Name
 
 		for _, obj := range g.pkg.TypesInfo.Defs {
-			if obj == nil || obj.Pkg() != g.pkg.Types {
+			if obj == nil || obj.Pkg() != g.pkg.Types || obj.Parent() == nil {
 				continue
 			}
 			g.typeMap[obj.Name()] = obj.Type()
@@ -152,7 +152,7 @@
 		"pkgName": pkgName,
 	})
 
-	iter, err := inst.Value().Fields()
+	iter, err := inst.Value().Fields(cue.Definitions(true))
 	g.addErr(err)
 
 	for iter.Next() {
@@ -231,7 +231,10 @@
 
 	zero := "nil"
 
-	typ := g.typeMap[goTypeName]
+	typ, ok := g.typeMap[goTypeName]
+	if !ok && !mappedGoTypes(goTypeName) {
+		return
+	}
 	if goType == "" {
 		goType = goTypeName
 		if typ != nil {
@@ -276,3 +279,13 @@
 	}
 	return have
 }
+
+func mappedGoTypes(s string) bool {
+	switch s {
+	case "bool", "float32", "float64",
+		"int", "int8", "int16", "int32", "int64", "string",
+		"uint", "uint8", "uint16", "uint32", "uint64":
+		return true
+	}
+	return false
+}
diff --git a/encoding/gocode/templates.go b/encoding/gocode/templates.go
index db1b906..22fb940 100644
--- a/encoding/gocode/templates.go
+++ b/encoding/gocode/templates.go
@@ -19,7 +19,7 @@
 // Inputs:
 // .pkgName  the Go package name
 var headerCode = template.Must(template.New("header").Parse(
-	`// Code generated by gogen.Generate; DO NOT EDIT.
+	`// Code generated by gocode.Generate; DO NOT EDIT.
 
 package {{.pkgName}}
 
@@ -80,10 +80,11 @@
 // {{.prefix}}Make is called in the init phase to initialize CUE values for
 // validation functions.
 func {{.prefix}}Make(name string, x interface{}) cue.Value {
-	v := {{.prefix}}Instance.Lookup(name)
-	if !v.Exists() {
+	f, err := {{.prefix}}Instance.LookupField(name)
+	if err != nil {
 		panic(fmt.Errorf("could not find type %q in instance", name))
 	}
+	v := f.Value
 	if x != nil {
 		w, err := {{.prefix}}Codec.ExtractType(x)
 		if err != nil {
diff --git a/encoding/gocode/testdata/pkg1/cue_gen.go b/encoding/gocode/testdata/pkg1/cue_gen.go
index 1fe592f..ab8ac04 100644
--- a/encoding/gocode/testdata/pkg1/cue_gen.go
+++ b/encoding/gocode/testdata/pkg1/cue_gen.go
@@ -1,4 +1,4 @@
-// Code generated by gogen.Generate; DO NOT EDIT.
+// Code generated by gocode.Generate; DO NOT EDIT.
 
 package pkg1
 
@@ -65,10 +65,11 @@
 // cuegenMake is called in the init phase to initialize CUE values for
 // validation functions.
 func cuegenMake(name string, x interface{}) cue.Value {
-	v := cuegenInstance.Lookup(name)
-	if !v.Exists() {
+	f, err := cuegenInstance.LookupField(name)
+	if err != nil {
 		panic(fmt.Errorf("could not find type %q in instance", name))
 	}
+	v := f.Value
 	if x != nil {
 		w, err := cuegenCodec.ExtractType(x)
 		if err != nil {
@@ -79,5 +80,5 @@
 	return v
 }
 
-// Data size: 518 bytes.
-var cuegenInstanceData = []byte("\x01\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\x94R]k\xd4@\x14\x9d\x9b\xae`.U\xf0\a\b\xe3<m\xa4\xcd~\x80\b\xa1Qk\xad\u0407v\x17\x8b\"\x88\x0f\xe3\xeclv\xd8l&$w\u0165\xb6\xa0\xd6\xda_\xe7\xab\xff\xa6\x91|\xb5\xabo\xcd\xcb\\n\xe6\x9c{\xe6\xdcs\xaf\xf8\xe5\x80S\\2(\xbe3\xf6\xb4\xf8\xb6\x01\xb0i\x92\x9cd\xa2\xf4+I\xb2\xec\xc3\x06t\xdeXK\xe00\xe8\x8c%\xcd`\x93\xc1\x9d\xd7&\xd69\x14\x17\x8c\xb1\x87\xc5O\a\xe0\xfe\x87\x8fj\xa9\xfd\xa9\x89\x1b\xe4\x05\x83\u2731n\xf1c\x03\xe0\xeeM\xff\x9c\x81\x03\x9d#\xb9\xd0%Q\xa7j\"c\xec\xca\xf9]\\2\a\x00\xb6\xd4R\xc72\x89|\x9bE\xbd\xc8\xf6t\xa2\xec\xc4$e\xad\xecD\xf7H\xe74\x91${\xe9<\x1a\x00\xc0\x83\xf2\ucd7a}\xb5\xd4p\x05\u007fR\xa9\xe62\u04bc\xfc\x89h\x16\xa9\u0348w\xd1\x15\xb7`\x1f\nt\xc5B\u04ac<s\xcaL\x12\xe5\x02=\xc4\xc3\xd51eKE\x01?Aw7\xe0|'\x1c\xf4\xd1}\x19p\x1e\x9e\t%I\xf0\xaf\xfc\xb1\x98\xd8H\xa0;z\x1e\xf0\x11\xcdtVc\xd0=\bx)k\xe8\x1fT\xaa\x0e5\x9e\xf2\x17\x91\xedn)\xbbHcM:\xdck\n\x0f\u05c0\xed\xb0F\x88\xbfg\x13\x92&\xc9w\x93UW\xbc\x17\x1e\xba\xe3\xa0\xe6\x1d\x1b5/Y\xf1\xb8\xba\x1a\xf0\xe6{\x14\n\xd1\xd6\xd5\xc0\xcf26\x13I:|\xd7\x14{o\xf7=<N\xb522n\xc1\xe1\x99\xc8\ub3a8Q\xb4JuX\xab\xf0p\xb40t=\x80s\x93\x10_\x1f\xb1\xed\xe1\x91M\xf6\xbf\x98\x9c*\xb2\x93\u02a5\x1a\xdc<{\xdb\u00e9\xb5A\t\xc51e\xed3K\xdf\xfd\xc3eL&\x8d\xf5h\xda\x1d\xf4=<E\u019c\xdb\xe4c\xd8\xe4c\xf8o>\xe4Z:\x86\xd7\xe9\xb8Y1\xb6\x9bi\xc5\xec\f\xfa\xfd5\xe5\xff\x99/?)Q\x8a\xab}\x0f\xf8\xb3'\xc8\xd8\xdf\x00\x00\x00\xff\xff\xa9a\xee\x8d^\x03\x00\x00")
+// Data size: 533 bytes.
+var cuegenInstanceData = []byte("\x01\x1f\x8b\b\x00\x00\x00\x00\x00\x00\xff\x94R]k\x13M\x14\x9e\xb3\xcd\v\xef\x1e\xaa\xe0\x0f\x10\u01b9\xcaJ\xbb\xf9\x00\x11\x96\xaeZk\x85\\\xa4\tFE\x10/\xc6\xc9d3d3\xb3\xecN\xc4P\x1bPk\xed\x9f\xf4\u059f\u0455\xfdj\xa3w\u075b9\x9c\xdd\xe7c\xe7y\xee\xe4?\x1dp\xf2K\x02\xf97B\x1e\xe7_w\x00v\x95\xce,\xd7B\xbe\xe0\x96\x17{\u0601\xd6+c,8\x04Zcn\xe7\xb0K\u0fd7*\x96\x19\xe4\x17\x84\x90\xfb\xf9\x0f\a\xe0\xee\xfb\x0fb%\xfd\x99\x8ak\xe4\x05\x81\xfc\x9c\x90v\xfe}\a\xe0\xff\x9b\xfd9\x01\aZ'|)\v\xa2V\xb9DB\u0215\xf3+\xbf$\x0e\x00\uc255\x8c\xb9\x8e|\x93F\x9d\xc8t\xa4\x16f\xaat1\v3\x95\x1d+3;\xe5\x96w\x92E\xd4\x03\x80{\xc5\xd9i|\xfbb%\xe1\n~'\\,x$i\xf1\x12Q-\x13\x93Z\xdaF\x97\u0742\xbd\xcf\xd0eKn\xe7\u0159\xd9T\xe9(c\xe8!\x0e\xd7\x13\x9b\xae\x84\r\xe8)\xba\x87\x01\xa5\aa\xaf\x8b\xee\xf3\x80\xd2p\xc3\x04\xb7\x8c~\xa1\x0f\xd9\xd4D\f\xdd\xd1\u04c0\x8e\xec\\\xa6\x15\x06\xddA@\v[}\u007fP\xba\x1aJ<\xa3\xcf\"\xd3\xde\x13f\x99\xc4\xd2\xca\xf0\xa8\x1e<\xdc\x026b\xb5\x11\xff\xc8h\u02d5\xce\x0e\xf5\xba\xcd\xde1\x0f\xddqP\xf1\x8e\x95X\x14\xac8)?\rh\xfd<\b\x19k\xe6R\xf0\x13\x8f\u0554[\x19\xbe\xad\x87\xa37\xc7\x1eN\x12)\x14\x8f\x1bp\xb8aY\xb5a\x15\u02ae\x13\x19V.<\x1cD\u06a4\xf2\xf5\\e\xa5L\xb8a3c\x18\x8e\x96\xca^\xebR\xaa\xb4-\xb1\xfb\x1e\x9e\x18}\xfcYe\xb6\xe4>-/\xad\xe2\xaaoa\xdf\u00d91A\x01\xc1\xb1M\x9b\xbf.b\xf0\x87\xab\u062a$\x96\xa3Y\xbb\xd7\xf5\xf0\f\tqnS\x97~]\x97\xfe\xdfu\xe1[e\xe9_\x97\xe5&ql\x82j\xcc\x1c\xf4\xba\xdd-\xe7\xffd\xc1?\nV\x98\xabb\b\xe8\x93GH\u021f\x00\x00\x00\xff\xffv\xf2MLm\x03\x00\x00")
diff --git a/encoding/gocode/testdata/pkg1/instance.cue b/encoding/gocode/testdata/pkg1/instance.cue
index 3358cbe..2e7dffd 100644
--- a/encoding/gocode/testdata/pkg1/instance.cue
+++ b/encoding/gocode/testdata/pkg1/instance.cue
@@ -22,6 +22,8 @@
 
 SpecialString: =~"special" @go(,type=string)
 
+IgnoreThis: =~"foo" // No corresponding Go type
+
 Omit: int @go(-)
 
 // NonExisting will be omitted as there is no equivalent Go type.
diff --git a/encoding/gocode/testdata/pkg2/cue_gen.go b/encoding/gocode/testdata/pkg2/cue_gen.go
index 74917b3..927bf6e 100644
--- a/encoding/gocode/testdata/pkg2/cue_gen.go
+++ b/encoding/gocode/testdata/pkg2/cue_gen.go
@@ -1,4 +1,4 @@
-// Code generated by gogen.Generate; DO NOT EDIT.
+// Code generated by gocode.Generate; DO NOT EDIT.
 
 package pkg2
 
@@ -39,10 +39,11 @@
 // cuegenMake is called in the init phase to initialize CUE values for
 // validation functions.
 func cuegenMake(name string, x interface{}) cue.Value {
-	v := cuegenInstance.Lookup(name)
-	if !v.Exists() {
+	f, err := cuegenInstance.LookupField(name)
+	if err != nil {
 		panic(fmt.Errorf("could not find type %q in instance", name))
 	}
+	v := f.Value
 	if x != nil {
 		w, err := cuegenCodec.ExtractType(x)
 		if err != nil {
