+++ /dev/null
-// +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 <alloc in reflect.Zero>
- 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()
-}