Protocol method impl classes are not descriptively named

Description

From: https://ask.clojure.org/index.php/9775/better-stacktraces-for-protocol-methods

Protocol method extension impl functions have class names that do not include either the protocol or the class name, such as: user.eval145.fn__145.G--135--151. This makes them difficult to debug when they occur in a stack trace:

This stack trace ties only to the user namespace and nothing mentions either Behavior or String. (But if this code was in a file, the file/line numbers would point to the correct line where the exception was thrown).

Cause: The method emitter for protocol extensions does not use the protocol name or class name when defining the name of the emitted class, but it could.

Proposed: Include the protocol and/or extension class and/or method name in the name of the function
impl class. One hack at this is in the ask link at the top, probably needs some more thought. Need to keep an eye on class name length too ().

Environment

None

Assignee

Unassigned

Reporter

Alex Miller

Labels

None

Approval

None

Patch

None

Affects versions

Priority

Major