Primitive VecSeq does not implement interface IObj

Description

VecSeq (as produced by (seq (vector-of :int 1 2 3))) does not implement interface IObj, whereas (seq [1 2 3]) does.

Proposed: Make VecSeq implement IObj.

Patch: clj-2549-v1.patch

Screened by: Alex Miller. I looked for cases in the wild of anyone relying on the internal `->VecSeq` or `VecSeq.` deftype constructor that could be broken by adding a field and did not find any (I don't think we'd consider that a public api but thought it was worth a check.)

Environment

None

Activity

Show:
Andy Fingerhut
December 29, 2019, 2:39 AM

is related, in that it is also regarding the class VecSeq not implementing some methods that seqs of normal vectors do.

Andy Fingerhut
December 29, 2019, 8:16 AM

Attached a proposed patch that makes class VecSeq implement interfaces IObj and IMeta, behaving similarly to how class PersistentVector$ChunkedSeq does.

Completed

Assignee

Unassigned

Reporter

Andy Fingerhut

Labels

None

Approval

Ok

Patch

Code and Test

Fix versions

Affects versions

Priority

Major
Configure