Exception on protocol implementation after protocol reloaded could be improved

Description

In a situation where you define a protocol, and then define a class that extends that protocol (e.g., reify, defrecord, deftype) and then later, re-define the protocol (typically, by reloading the namespace that defines the protocol), then the existing instances are no longer valid.

However, the exception that gets generated can be confusing:

The confusing part is that (in the above example) AuthService does extend MicroService, just not the correct version of it.

The exception message should be extended to identify that this is "possibly because the protocol was reloaded since the class was defined."

A patch will be ready shortly.

Environment

None

Assignee

Unassigned

Reporter

Howard Lewis Ship

Labels

Approval

Triaged

Patch

Code and Test

Affects versions

Priority

Minor
Configure