// +build ignore package main import "reflect" type A struct { f *int g interface{} h bool } var dyn string func reflectTypeFieldByName() { f, _ := reflect.TypeOf(A{}).FieldByName("f") print(f.Type) // @pointsto *int g, _ := reflect.TypeOf(A{}).FieldByName("g") print(g.Type) // @pointsto interface{} print(reflect.Zero(g.Type)) // @pointsto print(reflect.Zero(g.Type)) // @types interface{} print(reflect.Zero(g.Type).Interface()) // @pointsto print(reflect.Zero(g.Type).Interface()) // @types h, _ := reflect.TypeOf(A{}).FieldByName("h") print(h.Type) // @pointsto bool missing, _ := reflect.TypeOf(A{}).FieldByName("missing") print(missing.Type) // @pointsto dyn, _ := reflect.TypeOf(A{}).FieldByName(dyn) print(dyn.Type) // @pointsto *int | bool | interface{} } func reflectTypeField() { fld := reflect.TypeOf(A{}).Field(0) print(fld.Type) // @pointsto *int | bool | interface{} } func main() { reflectTypeFieldByName() reflectTypeField() }