docs: state the tri-state locking versions correctly on the LC0031 page - #186
Merged
Conversation
Tri-state locking arrived in version 23 and is enabled by default; version 26 removed the opt-out. The page said it was the default only from version 25. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Merged
9 tasks
Arthurvdv
added a commit
to ALCops/Analyzers
that referenced
this pull request
Sep 13, 2026
…eiver forms (#547) Issue #530 reported LC0031 firing on bare LockTable() inside Base App table triggers and a code action that changed nothing there. The trigger case is reported on purpose: the compiler binds every receiver form to the same built-in, LockTable is transaction-wide while ReadIsolation is instance-local, and Microsoft's own new code no longer writes LockTable in triggers. The defect was the code fix, which returned the unchanged document whenever the invocation had no member-access receiver. - Code fix: a bare LockTable() becomes a bare ReadIsolation(IsolationLevel::UpdLock); member-access receivers keep their form; the replacement copies the trivia of the original call so indentation and comments survive. - Fixtures: the full receiver-form set (named variable, Rec, bare, this, tableextension, page, TableNo OnRun, namespaced, RecordRef, arguments), both ReadIsolation forms as NoDiagnostic, and a leading-comment HasFix case; tableextension fixtures gated on SDK 13.0, this fixtures on runtime 14.0. - Rule doc lc0031-record-instance-isolation-level.md records the trigger decision, the per-form verdicts and the SDK facts; the receiver-forms regression row now covers the code fix flavour of the gap. Closes #530 Related: #545 Docs: ALCops/alcops.dev#185, ALCops/alcops.dev#186 Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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.
Summary
Follow-up to #185, which was merged before this correction landed on its branch.
The LC0031 page said tri-state locking is "default from v25 onward". Microsoft Learn states it applies from Business Central 2023 release wave 2 (version 23), is enabled by default, and can no longer be disabled from version 26. The sentence now reads "introduced in version 23, enabled by default, and always on from version 26".
Related: ALCops/Analyzers#547
🤖 Generated with Claude Code