Unexpected interaction between protocol extension and namespaced method keyword/symbols

Description

If the keywords of a protocol's method map are namespaced, the map is accepted, but lookup fails since lookup uses non-namespaced keywords.

See TLOG-4 for an actual case of this being an issue.

Work-around for namespaced keywords with extend:
don't use namespaced keywords

Work-around for syntax-quoting with extend-type or extend-protocol:
use extend with non-namespaced keywords

Possible solutions:

  1. Inside extend, remove namespace of keywords

  2. or

    • Inside extend, error on namespaced keywords.

    • Inside emit-hinted-impl, only grab name portion of symbols before converting to keyword.

Environment

None

Attachments

1

Activity

Show:

Stuart Sierra December 9, 2011 at 9:26 PM

Screened.

Rich Hickey October 7, 2011 at 1:28 PM

Most of this is a non-issue. :self and :foo/self are not the same.

This:

"Inside emit-hinted-impl, only grab name portion of symbols before converting to keyword."

is the only needed change.

Alexander Taggart September 30, 2011 at 2:01 AM

Simple test case to see the issue.

Completed

Details

Assignee

Reporter

Approval

Ok

Patch

Code and Test

Priority

Affects versions

Fix versions

Created September 30, 2011 at 1:46 AM
Updated March 1, 2013 at 6:47 PM
Resolved March 1, 2013 at 6:47 PM