Skip to content

fix: keep empty-fixture lint exemption after non-ASCII text - #829

Merged
kvlonge merged 1 commit into
mainfrom
fix/empty-fixture-non-ascii-offsets
Sep 25, 2026
Merged

kvlonge merged 1 commit into
mainfrom
fix/empty-fixture-non-ascii-offsets

Conversation

@kvlonge

@kvlonge kvlonge commented Sep 25, 2026

Copy link
Copy Markdown
Contributor

Why

In 0.119.0, SQL tests whose empty-fixture CTEs (SELECT * FROM __EMPTY_FIXTURE()) follow non-ASCII text were reported by SQBRSQL021. Non-ASCII SQL takes the Python lint preparation path, where the formatter's new spelling protection replaced the intrinsic call with a placeholder, so the empty-fixture exemption no longer matched.

Changes

  • Separate lint preparation from formatter-only substitutions. Lint keeps __empty_fixture, __cursor_start and __cursor_end, matching the native path's case and spacing policy.
  • The formatter enables spelling protection explicitly; its behaviour is unchanged.
  • Multi-byte regression tests (é, €, emoji) before rule anchors and formatter restoration sites, plus a playground CLI E2E.

Verification

  • make test (7,752 passed) and make check-ci.
  • Offset audit of the native lint, SQBRSQL035/036/040/041 helpers, formatter restoration and Python source mapping; no other defects.
  • Real project: compile returns to 0 errors, and format --check results are identical to the verified 0.119.0 run.

@kvlonge
kvlonge enabled auto-merge (squash) September 25, 2026 19:01
@kvlonge
kvlonge merged commit 3260499 into main Sep 25, 2026
28 checks passed
@kvlonge
kvlonge deleted the fix/empty-fixture-non-ascii-offsets branch September 25, 2026 19:14
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.

1 participant