reflect.Type.Implements (method)

84 uses

	reflect (current package)
		type.go#L107: 	Implements(u Type) bool

	database/sql
		convert.go#L558: 		rv.Type().Elem().Implements(valuerReflectType) {

	database/sql/driver
		types.go#L235: 		rv.Type().Elem().Implements(valuerReflectType) {

	encoding/json
		decode.go#L637: 			if !reflect.PointerTo(t.Key()).Implements(textUnmarshalerType) {
		decode.go#L772: 			if reflect.PointerTo(kt).Implements(textUnmarshalerType) {
		encode.go#L395: 	if t.Kind() != reflect.Pointer && allowAddr && reflect.PointerTo(t).Implements(marshalerType) {
		encode.go#L398: 	if t.Implements(marshalerType) {
		encode.go#L401: 	if t.Kind() != reflect.Pointer && allowAddr && reflect.PointerTo(t).Implements(textMarshalerType) {
		encode.go#L404: 	if t.Implements(textMarshalerType) {
		encode.go#L796: 		if !t.Key().Implements(textMarshalerType) {
		encode.go#L851: 		if !p.Implements(marshalerType) && !p.Implements(textMarshalerType) {
		encode.go#L1191: 						case t.Kind() == reflect.Interface && t.Implements(isZeroerType):
		encode.go#L1199: 						case t.Kind() == reflect.Pointer && t.Implements(isZeroerType):
		encode.go#L1204: 						case t.Implements(isZeroerType):
		encode.go#L1208: 						case reflect.PointerTo(t).Implements(isZeroerType):

	encoding/xml
		marshal.go#L453: 	if val.CanInterface() && typ.Implements(marshalerType) {
		marshal.go#L458: 		if pv.CanInterface() && pv.Type().Implements(marshalerType) {
		marshal.go#L464: 	if val.CanInterface() && typ.Implements(textMarshalerType) {
		marshal.go#L469: 		if pv.CanInterface() && pv.Type().Implements(textMarshalerType) {
		marshal.go#L583: 	if val.CanInterface() && val.Type().Implements(marshalerAttrType) {
		marshal.go#L596: 		if pv.CanInterface() && pv.Type().Implements(marshalerAttrType) {
		marshal.go#L608: 	if val.CanInterface() && val.Type().Implements(textMarshalerType) {
		marshal.go#L619: 		if pv.CanInterface() && pv.Type().Implements(textMarshalerType) {
		marshal.go#L857: 			if vf.CanInterface() && vf.Type().Implements(textMarshalerType) {
		marshal.go#L869: 				if pv.CanInterface() && pv.Type().Implements(textMarshalerType) {
		read.go#L258: 	if val.CanInterface() && val.Type().Implements(unmarshalerAttrType) {
		read.go#L265: 		if pv.CanInterface() && pv.Type().Implements(unmarshalerAttrType) {
		read.go#L271: 	if val.CanInterface() && val.Type().Implements(textUnmarshalerType) {
		read.go#L278: 		if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) {
		read.go#L355: 	if val.CanInterface() && val.Type().Implements(unmarshalerType) {
		read.go#L363: 		if pv.CanInterface() && pv.Type().Implements(unmarshalerType) {
		read.go#L368: 	if val.CanInterface() && val.Type().Implements(textUnmarshalerType) {
		read.go#L374: 		if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) {
		read.go#L581: 	if saveData.IsValid() && saveData.CanInterface() && saveData.Type().Implements(textUnmarshalerType) {
		read.go#L590: 		if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) {

	github.com/go-pg/pg/v10/orm
		table.go#L106: 	if typ.Implements(beforeScanHookType) {
		table.go#L109: 	if typ.Implements(afterScanHookType) {
		table.go#L112: 	if typ.Implements(afterSelectHookType) {
		table.go#L115: 	if typ.Implements(beforeInsertHookType) {
		table.go#L118: 	if typ.Implements(afterInsertHookType) {
		table.go#L121: 	if typ.Implements(beforeUpdateHookType) {
		table.go#L124: 	if typ.Implements(afterUpdateHookType) {
		table.go#L127: 	if typ.Implements(beforeDeleteHookType) {
		table.go#L130: 	if typ.Implements(afterDeleteHookType) {
		table.go#L1198: 	return typ.Implements(scannerType) || reflect.PtrTo(typ).Implements(scannerType)

	github.com/go-pg/pg/v10/types
		append_value.go#L98: 	if typ.Implements(appenderType) {
		append_value.go#L101: 	if typ.Implements(driverValuerType) {
		array_scan.go#L20: 	if typ.Implements(arrayValueScannerType) {
		scan_value.go#L101: 	if typ.Implements(valueScannerType) {
		scan_value.go#L104: 	if reflect.PtrTo(typ).Implements(valueScannerType) {
		scan_value.go#L108: 	if typ.Implements(sqlScannerType) {
		scan_value.go#L111: 	if reflect.PtrTo(typ).Implements(sqlScannerType) {

	github.com/go-pg/zerochecker
		zerochecker.go#L23: 	if typ.Implements(isZeroerType) {
		zerochecker.go#L47: 	if typ.Implements(appenderType) {
		zerochecker.go#L50: 	if typ.Implements(driverValuerType) {

	github.com/vmihailenco/msgpack/v5
		decode_value.go#L66: 	if typ.Implements(customDecoderType) {
		decode_value.go#L69: 	if typ.Implements(unmarshalerType) {
		decode_value.go#L72: 	if typ.Implements(binaryUnmarshalerType) {
		decode_value.go#L75: 	if typ.Implements(textUnmarshalerType) {
		decode_value.go#L82: 		if ptr.Implements(customDecoderType) {
		decode_value.go#L85: 		if ptr.Implements(unmarshalerType) {
		decode_value.go#L88: 		if ptr.Implements(binaryUnmarshalerType) {
		decode_value.go#L91: 		if ptr.Implements(textUnmarshalerType) {
		encode_value.go#L60: 	if typ.Implements(customEncoderType) {
		encode_value.go#L63: 	if typ.Implements(marshalerType) {
		encode_value.go#L66: 	if typ.Implements(binaryMarshalerType) {
		encode_value.go#L69: 	if typ.Implements(textMarshalerType) {
		encode_value.go#L76: 		if ptr.Implements(customEncoderType) {
		encode_value.go#L79: 		if ptr.Implements(marshalerType) {
		encode_value.go#L82: 		if ptr.Implements(binaryMarshalerType) {
		encode_value.go#L85: 		if ptr.Implements(textMarshalerType) {

	google.golang.org/grpc
		server.go#L671: 		if !st.Implements(ht) {

	google.golang.org/protobuf/internal/impl
		legacy_message.go#L252: 				if t.Implements(f.Type) {
		message_reflect_field.go#L72: 	if !reflect.PtrTo(ot).Implements(ft) {

	gotest.tools/v3/assert/cmp
		compare.go#L364: 	if errValue.Type().Implements(expectedType) {

	html/template
		content.go#L143: 	for !v.Type().Implements(fmtStringerType) && !v.Type().Implements(errorType) && v.Kind() == reflect.Pointer && !v.IsNil() {
		js.go#L142: 	for !v.Type().Implements(jsonMarshalType) && v.Kind() == reflect.Pointer && !v.IsNil() {

	text/template
		exec.go#L1123: 	if !v.Type().Implements(errorType) && !v.Type().Implements(fmtStringerType) {
		exec.go#L1124: 		if v.CanAddr() && (reflect.PointerTo(v.Type()).Implements(errorType) || reflect.PointerTo(v.Type()).Implements(fmtStringerType)) {