Your question might reprsent a misunderstanding. The "built-in error
type" is not a concrete type but an interface type. Are you asking if
the value is statically of that type, or dynamically? The difference
is important. See the "laws of reflection" blog post if this question
confuses you.
I believe you want to ask, "does this type implement the error
interface", which is the dynamic question. For that, use
reflect.Implements.
If for some reason, very unlikely, you want the static question, just
develop a reflect.Type representing 'error' and use simple equality,
like this
errorType = reflect.TypeOf((*error)(nil)).Elem()
if t == errorType { ... }
I suspect, though, that if you need to use this mechanism but haven't
figured it out yourself, you've talked yourself into a strange corner
and should read the blog post to find your way back:
http://blog.golang.org/2011/09/laws-of-reflection.html
-rob