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

[core.specs] Destructuring spec is overly restrictive in namespaced :keys

Description

Namespaced :keys destructuring (see ) supports any kind of ident in a `::foo/keys` or `::foo/syms`, but the core spec says only `simple-symbol?` is allowed.

Example:

1 2 3 user=> (let [{::keys [:foo]} {::foo 1}] foo) Syntax error macroexpanding clojure.core/let at (REPL:1:1). ...bunch of spec problems

Expected:

1 2 user=> (let [{::keys [:foo]} {::foo 1}] foo) 1

Proposed: Widen spec for this case from `simple-symbol?` to `ident?` (which the code supports).
Patch: clj-2473.patch

Environment

None

Status

Assignee

Unassigned

Reporter

Alex Miller

Approval

Vetted

Patch

Code

Fix versions

Affects versions

Release 1.10

Priority

Major