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
Your pinned fields
Click on the next to a field label to start pinning.

Assignee

Unassigned

Reporter

Alex Miller

Priority

Major

Affects versions