We're updating the issue view to help you get more done. 

destructuring maps in protocol method signatures cause runtime values to be replaced with the destructuring map literal

Description

(defprotocol P
(f [this {:keys [x]}]))

(defrecord R []
P
(f [this m] m))

(f (R.) {:hello "world"}) ;; => {:keys [:hello]}

We should get the same map as output as we used as input - instead, we get the destructuring map literal.

The above code works as expected in a bare Clojure 1.8 REPL.

Environment

Can be reproduced with the clojurescript Quick Start jar and the code below.

Status

Assignee

Unassigned

Reporter

import

Labels

None

Approval

None

Patch

None

Affects versions

1.9.76

Priority

Minor