defprotocol doesn't resolve tag classnames

Description

defprotocol doesn't resolve tag classnames, this results in exceptions being thrown when the declared protocol uses as a tag an imported class that is not imported in the namespace that uses it.

Patch: clj-1180-4.patch

Screened by:

Environment

None

Activity

Show:
Nicola Mometto
March 3, 2020, 4:37 PM

-4 uses compiler functions that are already public and used in defn, and adds regression test for longs hinting

Alex Miller
March 3, 2020, 4:27 PM

Seems like there should be tests to check these cases

Nicola Mometto
March 3, 2020, 4:08 PM
Edited

resolve is not correct, it breaks special type hints like `longs`:
With -2:

With -3:

Alex Miller
March 3, 2020, 3:58 PM

-3 patch uses resolve instead of opening up the compiler, per Rich

Alex Miller
January 18, 2016, 10:50 PM

Patch updates for current master, retains attribution.

Your pinned fields
Click on the next to a field label to start pinning.

Assignee

Unassigned

Reporter

Nicola Mometto

Labels

Approval

Incomplete

Patch

Code and Test

Priority

Major

Affects versions

Fix versions