fix: quote TOON array elements containing semicolons#217
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR fixes TOON array encoding in the oq package by ensuring array elements are encoded individually and semicolon-containing elements are quoted, preventing ambiguous decoding when ; appears inside an element.
Changes:
- Update TOON array formatting to encode each element independently before joining with
;. - Introduce a shared
toonQuotehelper and reuse it fromtoonEscape. - Add a regression test ensuring semicolon-containing array elements are quoted individually.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
oq/format.go |
Fix TOON array encoding by quoting/escaping elements individually and factoring quoting into toonQuote. |
oq/format_test.go |
Add regression test for semicolon-containing TOON array elements. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Contributor
📊 Test Coverage ReportCurrent Coverage: Coverage Change: ✅ No change Coverage by Package
📋 Detailed Coverage by Function (click to expand)
Generated by GitHub Actions |
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
TOON array output uses
;as the element delimiter, but array elements containing;were previously joined without quoting the element first. That made values likev1;deprecatedindistinguishable from multiple array entries when decoded.What changed
;.;delimiter while preserving existing escaping behavior for other values.Review notes
oq/format.go.Testing
mise test -run TestToonValue_ArrayEscapesSemicolonElements ./oq— passed.mise test ./oq— passed.mise ci— passed locally.Summary by cubic
Fix TOON array encoding by quoting elements that contain semicolons, so values like v1;deprecated are not split during decoding. This removes ambiguity when decoding TOON arrays.
;.Written for commit d079689. Summary will update on new commits.