Skip to content

fix(reader): attach metadata to read-string collections - #819

Draft
nnunley wants to merge 3 commits into
nooga:mainfrom
nnunley:fix/reader-metadata-data
Draft

fix(reader): attach metadata to read-string collections#819
nnunley wants to merge 3 commits into
nooga:mainfrom
nnunley:fix/reader-metadata-data

Conversation

@nnunley

@nnunley nnunley commented Sep 7, 2026

Copy link
Copy Markdown
Collaborator

Summary

  • add an explicit per-reader data mode for compiler.ReadString, read-string, and read-all-string
  • attach metadata directly to map, list, vector, and set values while preserving compiler-reader (with-meta ...) forms
  • preserve raw symbol type hints in attached collection metadata; metadata-bearing symbol targets remain deferred
  • return real sets in data mode without changing compiler set-form representation
  • accept metadata-promoted persistent vectors in deps.edn consumers (resolver and lginterop)

Stack and scope

Depends on #770 and must merge after it. This draft currently contains #770's commit plus this change; after #770 merges it should be rebased onto main before review/merge.

This addresses only the metadata section of #801. It intentionally does not close #801: map-interior #_ discard handling remains open.

Validation

  • go test ./pkg/compiler ./pkg/resolver ./cmd/lginterop
  • focused go test -race across metadata, tagged-reader, resolver, and lginterop regressions
  • go vet ./pkg/compiler ./pkg/resolver ./cmd/lginterop
  • make generate
  • make check-generated
  • all ./pkg/... packages except the sandbox-contaminated pkg/genmanifest oracle, plus all ./cmd/...
  • independent review; one persistent-vector config compatibility finding fixed; re-review passed

Local go test ./... remains unavailable in this sandbox because existing tests write literal /tmp paths and the read-only global module cache emits stderr into a JSON oracle. CI is required for the unrestricted repository-wide gate.

Relates to #801.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Reader compatibility: metadata yields a with-meta list and map-interior #_ discard fails

1 participant