reflect.Type.Implements (method)

80 uses

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

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

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

	encoding/json
		decode.go#L644: 			if !reflect.PointerTo(t.Key()).Implements(textUnmarshalerType) {
		decode.go#L785: 			case reflect.PointerTo(kt).Implements(textUnmarshalerType):
		encode.go#L422: 	if t.Kind() != reflect.Pointer && allowAddr && reflect.PointerTo(t).Implements(marshalerType) {
		encode.go#L425: 	if t.Implements(marshalerType) {
		encode.go#L428: 	if t.Kind() != reflect.Pointer && allowAddr && reflect.PointerTo(t).Implements(textMarshalerType) {
		encode.go#L431: 	if t.Implements(textMarshalerType) {
		encode.go#L826: 		if !t.Key().Implements(textMarshalerType) {
		encode.go#L897: 		if !p.Implements(marshalerType) && !p.Implements(textMarshalerType) {

	encoding/xml
		marshal.go#L434: 	if val.CanInterface() && typ.Implements(marshalerType) {
		marshal.go#L439: 		if pv.CanInterface() && pv.Type().Implements(marshalerType) {
		marshal.go#L445: 	if val.CanInterface() && typ.Implements(textMarshalerType) {
		marshal.go#L450: 		if pv.CanInterface() && pv.Type().Implements(textMarshalerType) {
		marshal.go#L558: 	if val.CanInterface() && val.Type().Implements(marshalerAttrType) {
		marshal.go#L571: 		if pv.CanInterface() && pv.Type().Implements(marshalerAttrType) {
		marshal.go#L583: 	if val.CanInterface() && val.Type().Implements(textMarshalerType) {
		marshal.go#L594: 		if pv.CanInterface() && pv.Type().Implements(textMarshalerType) {
		marshal.go#L832: 			if vf.CanInterface() && vf.Type().Implements(textMarshalerType) {
		marshal.go#L844: 				if pv.CanInterface() && pv.Type().Implements(textMarshalerType) {
		read.go#L253: 	if val.CanInterface() && val.Type().Implements(unmarshalerAttrType) {
		read.go#L260: 		if pv.CanInterface() && pv.Type().Implements(unmarshalerAttrType) {
		read.go#L266: 	if val.CanInterface() && val.Type().Implements(textUnmarshalerType) {
		read.go#L273: 		if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) {
		read.go#L339: 	if val.CanInterface() && val.Type().Implements(unmarshalerType) {
		read.go#L347: 		if pv.CanInterface() && pv.Type().Implements(unmarshalerType) {
		read.go#L352: 	if val.CanInterface() && val.Type().Implements(textUnmarshalerType) {
		read.go#L358: 		if pv.CanInterface() && pv.Type().Implements(textUnmarshalerType) {
		read.go#L562: 	if saveData.IsValid() && saveData.CanInterface() && saveData.Type().Implements(textUnmarshalerType) {
		read.go#L571: 		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#L135: 	for !v.Type().Implements(jsonMarshalType) && v.Kind() == reflect.Pointer && !v.IsNil() {

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