(t reflect.Type)
| 896 | } |
| 897 | |
| 898 | func emptyFuncOf(t reflect.Type) emptyFunc { |
| 899 | switch t { |
| 900 | case bytesType, rawMessageType: |
| 901 | return func(p unsafe.Pointer) bool { return (*slice)(p).len == 0 } |
| 902 | } |
| 903 | |
| 904 | switch t.Kind() { |
| 905 | case reflect.Array: |
| 906 | if t.Len() == 0 { |
| 907 | return func(unsafe.Pointer) bool { return true } |
| 908 | } |
| 909 | |
| 910 | case reflect.Map: |
| 911 | return func(p unsafe.Pointer) bool { return reflect.NewAt(t, p).Elem().Len() == 0 } |
| 912 | |
| 913 | case reflect.Slice: |
| 914 | return func(p unsafe.Pointer) bool { return (*slice)(p).len == 0 } |
| 915 | |
| 916 | case reflect.String: |
| 917 | return func(p unsafe.Pointer) bool { return len(*(*string)(p)) == 0 } |
| 918 | |
| 919 | case reflect.Bool: |
| 920 | return func(p unsafe.Pointer) bool { return !*(*bool)(p) } |
| 921 | |
| 922 | case reflect.Int, reflect.Uint: |
| 923 | return func(p unsafe.Pointer) bool { return *(*uint)(p) == 0 } |
| 924 | |
| 925 | case reflect.Uintptr: |
| 926 | return func(p unsafe.Pointer) bool { return *(*uintptr)(p) == 0 } |
| 927 | |
| 928 | case reflect.Int8, reflect.Uint8: |
| 929 | return func(p unsafe.Pointer) bool { return *(*uint8)(p) == 0 } |
| 930 | |
| 931 | case reflect.Int16, reflect.Uint16: |
| 932 | return func(p unsafe.Pointer) bool { return *(*uint16)(p) == 0 } |
| 933 | |
| 934 | case reflect.Int32, reflect.Uint32: |
| 935 | return func(p unsafe.Pointer) bool { return *(*uint32)(p) == 0 } |
| 936 | |
| 937 | case reflect.Int64, reflect.Uint64: |
| 938 | return func(p unsafe.Pointer) bool { return *(*uint64)(p) == 0 } |
| 939 | |
| 940 | case reflect.Float32: |
| 941 | return func(p unsafe.Pointer) bool { return *(*float32)(p) == 0 } |
| 942 | |
| 943 | case reflect.Float64: |
| 944 | return func(p unsafe.Pointer) bool { return *(*float64)(p) == 0 } |
| 945 | |
| 946 | case reflect.Ptr: |
| 947 | return func(p unsafe.Pointer) bool { return *(*unsafe.Pointer)(p) == nil } |
| 948 | |
| 949 | case reflect.Interface: |
| 950 | return func(p unsafe.Pointer) bool { return (*iface)(p).ptr == nil } |
| 951 | } |
| 952 | |
| 953 | return func(unsafe.Pointer) bool { return false } |
| 954 | } |
| 955 |
no test coverage detected
searching dependent graphs…