Skip to content

feat(lint/js): add useVarsOnTop#9861

Merged
dyc3 merged 1 commit intomainfrom
dyc3/useVarsOnTop
Apr 13, 2026
Merged

feat(lint/js): add useVarsOnTop#9861
dyc3 merged 1 commit intomainfrom
dyc3/useVarsOnTop

Conversation

@dyc3
Copy link
Copy Markdown
Contributor

@dyc3 dyc3 commented Apr 8, 2026

Summary

This PR adds useVarsOnTop which is a port of https://eslint.org/docs/latest/rules/vars-on-top

This is a pretty legacy rule, I don't imagine it getting much usage. Still, porting it for completion.

Generated by gpt 5.4

Test Plan

snapshots

Docs

@changeset-bot
Copy link
Copy Markdown

changeset-bot Bot commented Apr 8, 2026

🦋 Changeset detected

Latest commit: 6fe9e9b

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 13 packages
Name Type
@biomejs/biome Patch
@biomejs/cli-win32-x64 Patch
@biomejs/cli-win32-arm64 Patch
@biomejs/cli-darwin-x64 Patch
@biomejs/cli-darwin-arm64 Patch
@biomejs/cli-linux-x64 Patch
@biomejs/cli-linux-arm64 Patch
@biomejs/cli-linux-x64-musl Patch
@biomejs/cli-linux-arm64-musl Patch
@biomejs/wasm-web Patch
@biomejs/wasm-bundler Patch
@biomejs/wasm-nodejs Patch
@biomejs/backend-jsonrpc Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions github-actions Bot added A-CLI Area: CLI A-Project Area: project A-Linter Area: linter L-JavaScript Language: JavaScript and super languages A-Diagnostic Area: diagnostocis labels Apr 8, 2026
@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented Apr 8, 2026

Merging this PR will not alter performance

✅ 59 untouched benchmarks
⏩ 195 skipped benchmarks1


Comparing dyc3/useVarsOnTop (6fe9e9b) with main (0bc2198)

Open in CodSpeed

Footnotes

  1. 195 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports.

@github-actions github-actions Bot added the L-Grit Language: GritQL label Apr 8, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 8, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Adds a new nursery JavaScript lint rule useVarsOnTop (Rust) that warns when var declarations are not placed at the top of their containing scope. Registers the rule, adds an empty UseVarsOnTopOptions config type, exposes the options module, and adds valid/invalid JS test fixtures covering scripts, functions, modules and class static blocks. Also adds a changeset entry and tightens diagnostic-guidance wording in the lint-rule development doc.

Possibly related PRs

Suggested reviewers

  • ematipico
🚥 Pre-merge checks | ✅ 2
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately summarises the main change—adding a new lint rule useVarsOnTop—and is concise and specific.
Description check ✅ Passed The description clearly explains the PR's purpose: porting ESLint's vars-on-top rule, provides context about its legacy status, mentions test coverage, and discloses AI assistance.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch dyc3/useVarsOnTop

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🧹 Nitpick comments (1)
crates/biome_rule_options/src/use_vars_on_top.rs (1)

3-6: Avoid shipping an empty options type.

This rule has no fields, so a dedicated {} options struct just adds schema/codegen surface for no extra behaviour. I’d switch the rule to type Options = () and drop this module until there’s an actual setting.

As per coding guidelines, Use type Options = () if a rule does not have additional configuration options.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@crates/biome_rule_options/src/use_vars_on_top.rs` around lines 3 - 6, The
file defines an empty options struct UseVarsOnTopOptions which should be
replaced with a unit-type alias; change the exported options symbol to `type
Options = ();` and remove the empty struct and its derives
(serde/schemars/Merge/etc.), and update any references or re-exports that
mentioned UseVarsOnTopOptions to use the Options alias instead (or remove the
module entirely if unused) so no empty `{}` options type is shipped.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.changeset/fresh-coins-do.md:
- Line 7: Update the lead-in sentence "For example, the following code now
triggers the rule:" in .changeset/fresh-coins-do.md to end with a period instead
of a colon (i.e., change the trailing ":" to "."), ensuring the sentence follows
the guideline "End every sentence in changeset descriptions with a full stop
(period)."

In `@crates/biome_js_analyze/src/lint/nursery/use_vars_on_top.rs`:
- Around line 171-217: The leading-scan helpers is_top_statement_in_list and
is_top_module_item_in_list currently only treat JsVariableStatement with
declaration().is_var() as allowed, which is stricter than ESLint's vars-on-top
semantics; update both helpers to (1) treat any variable declaration as allowed
by accepting declaration().is_ok() (so let/const/var are permitted), (2) also
allow directive prologue statements and imports at module scope (e.g., recognize
string-literal expression statements as directives and keep allowing
AnyJsModuleItem::JsImport(_)), and (3) add unit/fixture tests demonstrating
examples like `let x; var y;` and leading directives so the rule matches ESLint
behavior; adjust references in the code to the functions
is_top_statement_in_list, is_top_module_item_in_list,
AnyJsStatement/AnyJsModuleItem, and JsVariableStatement when making these
changes.

---

Nitpick comments:
In `@crates/biome_rule_options/src/use_vars_on_top.rs`:
- Around line 3-6: The file defines an empty options struct UseVarsOnTopOptions
which should be replaced with a unit-type alias; change the exported options
symbol to `type Options = ();` and remove the empty struct and its derives
(serde/schemars/Merge/etc.), and update any references or re-exports that
mentioned UseVarsOnTopOptions to use the Options alias instead (or remove the
module entirely if unused) so no empty `{}` options type is shipped.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: aef591b6-e8fa-4f08-ab46-05d54b5f99a4

📥 Commits

Reviewing files that changed from the base of the PR and between 0bc2198 and dcf5f49.

⛔ Files ignored due to path filters (8)
  • crates/biome_cli/src/execute/migrate/eslint_any_rule_to_biome.rs is excluded by !**/migrate/eslint_any_rule_to_biome.rs and included by **
  • crates/biome_configuration/src/analyzer/linter/rules.rs is excluded by !**/rules.rs and included by **
  • crates/biome_configuration/src/generated/linter_options_check.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_diagnostics_categories/src/categories.rs is excluded by !**/categories.rs and included by **
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/invalid.js.snap is excluded by !**/*.snap and included by **
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/valid.js.snap is excluded by !**/*.snap and included by **
  • packages/@biomejs/backend-jsonrpc/src/workspace.ts is excluded by !**/backend-jsonrpc/src/workspace.ts and included by **
  • packages/@biomejs/biome/configuration_schema.json is excluded by !**/configuration_schema.json and included by **
📒 Files selected for processing (7)
  • .changeset/fresh-coins-do.md
  • .claude/skills/lint-rule-development/SKILL.md
  • crates/biome_js_analyze/src/lint/nursery/use_vars_on_top.rs
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/invalid.js
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/valid.js
  • crates/biome_rule_options/src/lib.rs
  • crates/biome_rule_options/src/use_vars_on_top.rs

Comment thread .changeset/fresh-coins-do.md
Comment thread crates/biome_js_analyze/src/lint/nursery/use_vars_on_top.rs
@dyc3 dyc3 force-pushed the dyc3/useVarsOnTop branch from ec64b34 to 2b8bb2b Compare April 8, 2026 18:53
@github-actions github-actions Bot removed the L-Grit Language: GritQL label Apr 8, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
.claude/skills/lint-rule-development/SKILL.md (1)

357-361: Consider simplifying the “Bad” example wording for readability.

The embedded <Emphasis> markup inside quoted prose makes the anti-pattern example a bit noisy. Plain text would keep the point clearer for contributors.

Suggested tweak
-3. "At module scope, imports and leading "<Emphasis>"export var"</Emphasis>" declarations may appear before other statements." // Doesn't explain the action, just gives a superfluous detail about module scope.
+3. "At module scope, imports and leading export var declarations may appear before other statements." // Doesn't explain the action, just gives a superfluous detail about module scope.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/lint-rule-development/SKILL.md around lines 357 - 361, The
quoted "Bad" example is noisy due to embedded <Emphasis> markup and awkward
ordering; simplify it by removing the inline <Emphasis> tags (use plain text
"export var"), reorder the three lines so they state the problem first, then the
corrective action, then any allowed exceptions, and rephrase the third line to
be a concise exception note about module scope (e.g., "At module scope, imports
and leading export var declarations may appear before other statements.") to
keep the example clear and readable.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.claude/skills/lint-rule-development/SKILL.md:
- Around line 357-361: The quoted "Bad" example is noisy due to embedded
<Emphasis> markup and awkward ordering; simplify it by removing the inline
<Emphasis> tags (use plain text "export var"), reorder the three lines so they
state the problem first, then the corrective action, then any allowed
exceptions, and rephrase the third line to be a concise exception note about
module scope (e.g., "At module scope, imports and leading export var
declarations may appear before other statements.") to keep the example clear and
readable.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: a7122634-aeb5-46c0-9b76-683dd6e780cb

📥 Commits

Reviewing files that changed from the base of the PR and between ec64b34 and 2b8bb2b.

⛔ Files ignored due to path filters (8)
  • crates/biome_cli/src/execute/migrate/eslint_any_rule_to_biome.rs is excluded by !**/migrate/eslint_any_rule_to_biome.rs and included by **
  • crates/biome_configuration/src/analyzer/linter/rules.rs is excluded by !**/rules.rs and included by **
  • crates/biome_configuration/src/generated/linter_options_check.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_diagnostics_categories/src/categories.rs is excluded by !**/categories.rs and included by **
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/invalid.js.snap is excluded by !**/*.snap and included by **
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/valid.js.snap is excluded by !**/*.snap and included by **
  • packages/@biomejs/backend-jsonrpc/src/workspace.ts is excluded by !**/backend-jsonrpc/src/workspace.ts and included by **
  • packages/@biomejs/biome/configuration_schema.json is excluded by !**/configuration_schema.json and included by **
📒 Files selected for processing (7)
  • .changeset/fresh-coins-do.md
  • .claude/skills/lint-rule-development/SKILL.md
  • crates/biome_js_analyze/src/lint/nursery/use_vars_on_top.rs
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/invalid.js
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/valid.js
  • crates/biome_rule_options/src/lib.rs
  • crates/biome_rule_options/src/use_vars_on_top.rs
✅ Files skipped from review due to trivial changes (4)
  • .changeset/fresh-coins-do.md
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/valid.js
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/invalid.js
  • crates/biome_rule_options/src/use_vars_on_top.rs
🚧 Files skipped from review as they are similar to previous changes (2)
  • crates/biome_rule_options/src/lib.rs
  • crates/biome_js_analyze/src/lint/nursery/use_vars_on_top.rs

@dyc3 dyc3 marked this pull request as draft April 8, 2026 20:59
@dyc3 dyc3 force-pushed the dyc3/useVarsOnTop branch from 2b8bb2b to 3cd16de Compare April 8, 2026 21:50
@dyc3 dyc3 marked this pull request as ready for review April 8, 2026 22:17
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
.claude/skills/lint-rule-development/SKILL.md (1)

357-361: Tiny clarity tweak in the “Bad” example

This section works, but the inline note “Good start” inside a block labelled “Bad” is a little mixed-signal. Consider neutral wording so readers don’t momentarily parse it as partially recommended.

Suggested wording tweak
-1. "This var declaration is not at the top of its containing scope." // Good start, explains what the problem is
+1. "This var declaration is not at the top of its containing scope." // States the problem, but the overall sequence below is still incorrect
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.claude/skills/lint-rule-development/SKILL.md around lines 357 - 361, Update
the "Bad" example block so the inline comments use neutral critique rather than
mixed praise; specifically edit the three comment lines that begin with "Good
start," "Doesn't explain why," and "Doesn't explain the action" to neutral
phrasing that identifies the issue only (e.g., "Explains the problem but not the
rationale", "Tells what to do but not why", "Includes unnecessary module-scope
detail"). Locate and modify the exact strings shown in the diff (the three
quoted comment lines) to use concise, neutral feedback without positive wording
inside a section labeled "Bad".
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Nitpick comments:
In @.claude/skills/lint-rule-development/SKILL.md:
- Around line 357-361: Update the "Bad" example block so the inline comments use
neutral critique rather than mixed praise; specifically edit the three comment
lines that begin with "Good start," "Doesn't explain why," and "Doesn't explain
the action" to neutral phrasing that identifies the issue only (e.g., "Explains
the problem but not the rationale", "Tells what to do but not why", "Includes
unnecessary module-scope detail"). Locate and modify the exact strings shown in
the diff (the three quoted comment lines) to use concise, neutral feedback
without positive wording inside a section labeled "Bad".

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: f1e8a0bd-2f64-4dbd-8e59-8b2ca1088c74

📥 Commits

Reviewing files that changed from the base of the PR and between 2b8bb2b and 3cd16de.

⛔ Files ignored due to path filters (8)
  • crates/biome_cli/src/execute/migrate/eslint_any_rule_to_biome.rs is excluded by !**/migrate/eslint_any_rule_to_biome.rs and included by **
  • crates/biome_configuration/src/analyzer/linter/rules.rs is excluded by !**/rules.rs and included by **
  • crates/biome_configuration/src/generated/linter_options_check.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_diagnostics_categories/src/categories.rs is excluded by !**/categories.rs and included by **
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/invalid.js.snap is excluded by !**/*.snap and included by **
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/valid.js.snap is excluded by !**/*.snap and included by **
  • packages/@biomejs/backend-jsonrpc/src/workspace.ts is excluded by !**/backend-jsonrpc/src/workspace.ts and included by **
  • packages/@biomejs/biome/configuration_schema.json is excluded by !**/configuration_schema.json and included by **
📒 Files selected for processing (7)
  • .changeset/fresh-coins-do.md
  • .claude/skills/lint-rule-development/SKILL.md
  • crates/biome_js_analyze/src/lint/nursery/use_vars_on_top.rs
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/invalid.js
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/valid.js
  • crates/biome_rule_options/src/lib.rs
  • crates/biome_rule_options/src/use_vars_on_top.rs
✅ Files skipped from review due to trivial changes (4)
  • .changeset/fresh-coins-do.md
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/valid.js
  • crates/biome_rule_options/src/use_vars_on_top.rs
  • crates/biome_js_analyze/src/lint/nursery/use_vars_on_top.rs
🚧 Files skipped from review as they are similar to previous changes (2)
  • crates/biome_rule_options/src/lib.rs
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/invalid.js

@dyc3 dyc3 requested review from a team April 10, 2026 23:29
Comment thread crates/biome_js_analyze/src/lint/nursery/use_vars_on_top.rs Outdated
Comment thread crates/biome_js_analyze/src/lint/nursery/use_vars_on_top.rs Outdated
Comment thread crates/biome_js_analyze/src/lint/nursery/use_vars_on_top.rs
@dyc3 dyc3 force-pushed the dyc3/useVarsOnTop branch from 3cd16de to 6fe9e9b Compare April 13, 2026 21:28
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@crates/biome_js_analyze/src/lint/nursery/use_vars_on_top.rs`:
- Around line 23-25: Update the doc comments in use_vars_on_top.rs (the
top-level rule comment and the note later) to reflect that the implementation
allows a leading run of variable declarations (not just `var`) and adjust
wording to say "variable declarations (e.g., var/let/const)" or similar; also
when porting the ESLint source, use RuleSource::Eslint("use-vars-on-top").same()
to indicate identical behavior. Ensure you modify the doc block at the top of
use_vars_on_top.rs and the explanatory note (the two places referenced) and
replace any “only `var`” phrasing with the broader, accurate description.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 4411b0d7-123d-449b-989d-a8e8fd72fbd5

📥 Commits

Reviewing files that changed from the base of the PR and between 3cd16de and 6fe9e9b.

⛔ Files ignored due to path filters (8)
  • crates/biome_cli/src/execute/migrate/eslint_any_rule_to_biome.rs is excluded by !**/migrate/eslint_any_rule_to_biome.rs and included by **
  • crates/biome_configuration/src/analyzer/linter/rules.rs is excluded by !**/rules.rs and included by **
  • crates/biome_configuration/src/generated/linter_options_check.rs is excluded by !**/generated/**, !**/generated/** and included by **
  • crates/biome_diagnostics_categories/src/categories.rs is excluded by !**/categories.rs and included by **
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/invalid.js.snap is excluded by !**/*.snap and included by **
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/valid.js.snap is excluded by !**/*.snap and included by **
  • packages/@biomejs/backend-jsonrpc/src/workspace.ts is excluded by !**/backend-jsonrpc/src/workspace.ts and included by **
  • packages/@biomejs/biome/configuration_schema.json is excluded by !**/configuration_schema.json and included by **
📒 Files selected for processing (7)
  • .changeset/fresh-coins-do.md
  • .claude/skills/lint-rule-development/SKILL.md
  • crates/biome_js_analyze/src/lint/nursery/use_vars_on_top.rs
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/invalid.js
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/valid.js
  • crates/biome_rule_options/src/lib.rs
  • crates/biome_rule_options/src/use_vars_on_top.rs
✅ Files skipped from review due to trivial changes (5)
  • crates/biome_rule_options/src/lib.rs
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/invalid.js
  • crates/biome_rule_options/src/use_vars_on_top.rs
  • crates/biome_js_analyze/tests/specs/nursery/useVarsOnTop/valid.js
  • .changeset/fresh-coins-do.md

Comment on lines +23 to +25
/// This rule only allows leading standalone `var` statements. At module
/// scope, leading `export var` declarations are allowed too. Directives and
/// imports may appear before them.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Docs/message drift from actual rule behaviour.

The implementation permits a leading run of variable declarations (not just var), but the doc block and note currently read as “only var before other statements”. Please align wording with behaviour to avoid confusing users.

✏️ Suggested wording update
-    /// This rule only allows leading standalone `var` statements. At module
-    /// scope, leading `export var` declarations are allowed too. Directives and
-    /// imports may appear before them.
+    /// This rule allows a leading run of variable declarations (`var`, `let`,
+    /// `const`). At module scope, leading variable exports are also allowed.
+    /// Directives and imports may appear before that leading run.
...
-                "Move this "<Emphasis>"var"</Emphasis>" declaration before other statements in the same scope. At module scope, imports may remain before it."
+                "Move this "<Emphasis>"var"</Emphasis>" declaration before non-declaration statements in the same scope. At module scope, imports may remain before it."

Based on learnings: Use RuleSource::Eslint("rule-name").same() when porting an ESLint rule with matching behavior.

Also applies to: 89-90

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@crates/biome_js_analyze/src/lint/nursery/use_vars_on_top.rs` around lines 23
- 25, Update the doc comments in use_vars_on_top.rs (the top-level rule comment
and the note later) to reflect that the implementation allows a leading run of
variable declarations (not just `var`) and adjust wording to say "variable
declarations (e.g., var/let/const)" or similar; also when porting the ESLint
source, use RuleSource::Eslint("use-vars-on-top").same() to indicate identical
behavior. Ensure you modify the doc block at the top of use_vars_on_top.rs and
the explanatory note (the two places referenced) and replace any “only `var`”
phrasing with the broader, accurate description.

@dyc3 dyc3 merged commit 2cff700 into main Apr 13, 2026
31 checks passed
@dyc3 dyc3 deleted the dyc3/useVarsOnTop branch April 13, 2026 21:45
@github-actions github-actions Bot mentioned this pull request Apr 13, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

A-CLI Area: CLI A-Diagnostic Area: diagnostocis A-Linter Area: linter A-Project Area: project L-JavaScript Language: JavaScript and super languages

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants