Skip to content

fix(rsc): handle shadowing for use server variable binding#1170

Open
hi-ogawa wants to merge 88 commits intomainfrom
test-rsc-add-test-for-use-server-binding-and-shadowing
Open

fix(rsc): handle shadowing for use server variable binding#1170
hi-ogawa wants to merge 88 commits intomainfrom
test-rsc-add-test-for-use-server-binding-and-shadowing

Conversation

@hi-ogawa
Copy link
Copy Markdown
Contributor

@hi-ogawa hi-ogawa commented Apr 4, 2026

Description

Credits to

While I'm trying to understand the PR, it seems imminent to properly plan and iterate for the larger picture. This PR doesn't address member expression based binding, but the foundation needed for future enhancement has been taken into account.

TODO:

  • review isReferenceIdentifier
  • research scope manager prior arts
    • see packages/plugin-rsc/docs/notes/2026-04-05-scope-manager-research.md
      (though I didn't really review except periscopic and vite ssr)
  • review snapshots (except typescript-eslint fixtures)
  • more tests for scope tree
    • (later) extract input from hoist.test.ts (probably should go opposite by turning these inline input into files)
    • use typescript-eslint scope test cases (transpile ts to js

@hi-ogawa hi-ogawa requested a review from Copilot April 4, 2026 14:17
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR strengthens and expands the plugin’s internal scope analysis (used for use server / hoisting-related shadowing correctness) by switching CJS transform logic off periscopic, and by checking in a large fixture corpus + tooling to review/regenerate snapshots.

Changes:

  • Replaced periscopic analysis usage in the CJS transform with the local buildScopeTree.
  • Added a large set of scope fixtures + .snap.json snapshots (including a transpiled typescript-eslint fixture corpus) to validate scope binding/shadowing.
  • Added scripts + docs to import and review fixture/snapshot data, and updated formatter ignore patterns for snapshot/fixture directories.

Reviewed changes

Copilot reviewed 300 out of 649 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
.oxfmtrc.json Ignores snapshot JSONs and the typescript-eslint fixture subtree during formatting.
packages/plugin-rsc/package.json Removes periscopic dependency after migrating to local scope analysis.
packages/plugin-rsc/docs/notes/2026-04-04-scope-unit-tests.md Documents the scope fixture + snapshot testing strategy and migration steps.
packages/plugin-rsc/scripts/README.md Documents the fixture import/review scripts and workflow.
packages/plugin-rsc/scripts/import-typescript-eslint-scope-fixtures.ts New script to transpile upstream typescript-eslint scope-manager fixtures into checked-in JS.
packages/plugin-rsc/scripts/review-scope-fixtures.ts New script to generate a Markdown “review packet” for fixture + snapshot pairs.
packages/plugin-rsc/src/transforms/cjs.ts Switches require-shadowing checks from periscopic to buildScopeTree.
packages/plugin-rsc/src/transforms/fixtures/scope/array-destructuring-assignment.js Adds a hand-crafted scope fixture for array destructuring assignment binding.
packages/plugin-rsc/src/transforms/fixtures/scope/array-destructuring-assignment.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/assign.js Adds a hand-crafted scope fixture for assignment references.
packages/plugin-rsc/src/transforms/fixtures/scope/assign.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/catch-param.js Adds a hand-crafted scope fixture for catch parameter scoping.
packages/plugin-rsc/src/transforms/fixtures/scope/catch-param.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/class-decl.js Adds a hand-crafted scope fixture for class declarations and instantiation references.
packages/plugin-rsc/src/transforms/fixtures/scope/class-decl.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/computed-destructuring.js Adds a hand-crafted scope fixture for computed property destructuring.
packages/plugin-rsc/src/transforms/fixtures/scope/computed-destructuring.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/destructured-params.js Adds a hand-crafted scope fixture for destructured function parameters.
packages/plugin-rsc/src/transforms/fixtures/scope/destructured-params.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/destructuring-assignment.js Adds a hand-crafted scope fixture for object destructuring assignment binding.
packages/plugin-rsc/src/transforms/fixtures/scope/destructuring-assignment.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/export-specifier.js Adds a hand-crafted scope fixture covering export specifier reference semantics.
packages/plugin-rsc/src/transforms/fixtures/scope/export-specifier.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/fn-decl-hoisting.js Adds a hand-crafted scope fixture for function declaration hoisting.
packages/plugin-rsc/src/transforms/fixtures/scope/fn-decl-hoisting.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/fn-expr-name.js Adds a hand-crafted scope fixture for named function expression self-binding.
packages/plugin-rsc/src/transforms/fixtures/scope/fn-expr-name.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/import-specifier.js Adds a hand-crafted scope fixture for import specifier bindings.
packages/plugin-rsc/src/transforms/fixtures/scope/import-specifier.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/label.js Adds a hand-crafted scope fixture for labels (non-reference identifiers).
packages/plugin-rsc/src/transforms/fixtures/scope/label.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/let-const-block.js Adds a hand-crafted scope fixture for block scoping with let/const.
packages/plugin-rsc/src/transforms/fixtures/scope/let-const-block.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/member-expr.js Adds a hand-crafted scope fixture for member expressions and computed property keys.
packages/plugin-rsc/src/transforms/fixtures/scope/member-expr.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/method-definition.js Adds a hand-crafted scope fixture for class method definitions + computed method keys.
packages/plugin-rsc/src/transforms/fixtures/scope/method-definition.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/object-expr-vs-pattern.js Adds a hand-crafted scope fixture for object expression vs pattern binding name differences.
packages/plugin-rsc/src/transforms/fixtures/scope/object-expr-vs-pattern.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/param-defaults.js Adds a hand-crafted scope fixture for parameter default scoping.
packages/plugin-rsc/src/transforms/fixtures/scope/param-defaults.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/propagation.js Adds a hand-crafted scope fixture for closure capture / propagation.
packages/plugin-rsc/src/transforms/fixtures/scope/propagation.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/property-definition.js Adds a hand-crafted scope fixture for class field initializers referencing outer bindings.
packages/plugin-rsc/src/transforms/fixtures/scope/property-definition.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/ref-global.js Adds a hand-crafted scope fixture for global/unresolved references.
packages/plugin-rsc/src/transforms/fixtures/scope/ref-global.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/ref-outer-fn.js Adds a hand-crafted scope fixture for referencing outer bindings from nested functions.
packages/plugin-rsc/src/transforms/fixtures/scope/ref-outer-fn.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/shadowing-block.js Adds a hand-crafted scope fixture for block-level shadowing.
packages/plugin-rsc/src/transforms/fixtures/scope/shadowing-block.js.snap.json Adds the expected scope-tree snapshot for the fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/block/inherited-scope.js Adds imported typescript-eslint fixture for inherited scope behavior in blocks.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/block/inherited-scope.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/block/scope.js Adds imported typescript-eslint fixture for block scoping rules.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/block/scope.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/call-expression/call-expression.js Adds imported fixture for call expression references (incl. optional call).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/call-expression/call-expression.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/call-expression/type-parameters1.js Adds imported fixture for TS type-parameter syntax lowering edge-cases.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/call-expression/type-parameters1.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/call-expression/type-parameters2.js Adds imported fixture for value/type namespace resolution expectations.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/call-expression/type-parameters2.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/catch/destructuring-array.js Adds imported fixture for catch clause destructuring (array).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/catch/destructuring-array.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/catch/destructuring-object.js Adds imported fixture for catch clause destructuring (object).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/catch/destructuring-object.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/catch/inherited-scope.js Adds imported fixture for catch clause inheriting outer scope refs.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/catch/inherited-scope.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/catch/scope.js Adds imported fixture for catch clause binding + unresolved refs.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/catch/scope.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/abstract-accessor-property.js Adds imported fixture for TS-only syntax lowering to JS class declarations.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/abstract-accessor-property.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/abstract-property.js Adds imported fixture for TS-only class members lowering.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/abstract-property.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/abstract.js Adds imported fixture for abstract class lowering.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/abstract.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/accessor-property-type-annotation.js Adds imported fixture for accessor property type annotations lowering.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/accessor-property-type-annotation.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/accessor-property.js Adds imported fixture for accessor-property related bindings.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/accessor-property.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/computed-member.js Adds imported fixture for computed class members and scope interaction.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/computed-member.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/extends-generic.js Adds imported fixture for generic extends lowering and refs.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/extends-generic.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/extends.js Adds imported fixture for class extends resolution.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/extends.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/generic-ref-extends.js Adds imported fixture for generic refs in extends expressions.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/generic-ref-extends.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/generic-ref-implements.js Adds imported fixture for implements refs lowering.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/generic-ref-implements.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/generic.js Adds imported fixture for generic class syntax lowering.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/generic.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/implements-generic.js Adds imported fixture for implements generic lowering.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/implements-generic.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/implements.js Adds imported fixture for implements lowering.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/implements.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/index-signature.js Adds imported fixture for index signature lowering/no-op in JS output.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/index-signature.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/method-param-default.js Adds imported fixture for method param default resolution (member access).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/method-param-default.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/method.js Adds imported fixture for method params + unresolved identifiers.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/method.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/new.js Adds imported fixture for new expressions referencing a class binding.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/new.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/parameter-properties.js Adds imported fixture for constructor params and default initializers in classes.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/parameter-properties.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/private-identifier.js Adds imported fixture for private identifier usage in classes.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/private-identifier.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/properties-type-annotation.js Adds imported fixture for TS-only property type annotations lowering.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/properties-type-annotation.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/properties.js Adds imported fixture for class property assignments and unresolved globals.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/properties.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/static-block.js Adds imported fixture for static block scoping.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/static-block.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/static-external-ref.js Adds imported fixture for static block external refs.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/static-external-ref.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/static-with-constructor.js Adds imported fixture for static block + constructor refs.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/static-with-constructor.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/type-reference.js Adds imported fixture for type/value namespace resolution lowering.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/declaration/type-reference.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/computed-member.js Adds imported fixture for computed members in class expressions.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/computed-member.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/extends.js Adds imported fixture for class expression extends refs.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/extends.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/method.js Adds imported fixture for class expression methods and param binding.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/method.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/new.js Adds imported fixture for new with class expressions.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/new.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/parameter-properties.js Adds imported fixture for constructor param defaults in class expressions.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/parameter-properties.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/private-identifier.js Adds imported fixture for private identifiers in class expressions.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/private-identifier.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/properties.js Adds imported fixture for properties set in class expression constructors.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/properties.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/self-reference-super.js Adds imported fixture for class-name self-reference when extending in class expressions.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/class/expression/self-reference-super.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/decorators/class-deco-with-object-param.js Adds imported decorator-lowered fixture (with helper injection).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/decorators/class-deco-with-object-param.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/decorators/class-property.js Adds imported decorator-lowered fixture for class property decorators.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/decorators/class-property.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/decorators/class.js Adds imported decorator-lowered fixture for class decorators (+ helpers).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/decorators/class.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/decorators/method.js Adds imported decorator-lowered fixture for method decorators.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/decorators/method.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/decorators/parameter-property.js Adds imported decorator-lowered fixture for parameter properties.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/decorators/parameter.js Adds imported decorator-lowered fixture for parameter decorators.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/decorators/typeof-this.js Adds imported decorator-lowered fixture with this/helper references.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/decorators/typeof-this.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/destructuring/array-assignment.js Adds imported destructuring assignment fixture for array patterns.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/destructuring/array-assignment.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/destructuring/array.js Adds imported destructuring declaration fixture for array patterns.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/destructuring/array.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/destructuring/object-assignment.js Adds imported destructuring assignment fixture for object patterns.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/destructuring/object-assignment.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/destructuring/object.js Adds imported destructuring declaration fixture for object patterns.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/destructuring/object.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/all.js Adds imported export-all fixture for module export semantics.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/all.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/default-type.js Adds imported fixture for default exports and value/type distinctions.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/default-type.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/default1.js Adds imported default export fixture (named function).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/default1.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/default2.js Adds imported default export fixture (identifier).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/default2.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/default3.js Adds imported default export fixture (literal).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/default3.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/default4.js Adds imported default export fixture (anonymous function).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/default4.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/equals1.js Adds imported export {} fixture establishing module mode + declarations.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/equals1.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/equals2.js Adds imported export {} fixture in module mode.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/equals2.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/equals3-type.js Adds imported fixture for type-only export lowering.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/equals3-type.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/equals4-type.js Adds imported fixture for type-only export lowering (variant).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/equals4-type.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named-dual.js Adds imported fixture for named exports from local bindings.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named-dual.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named-source1.js Adds imported fixture for re-exports with a source module (unresolved local).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named-source1.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named-source2.js Adds imported fixture for re-export with aliasing from a source module.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named-source2.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named-type1.js Adds imported fixture for type-only named exports lowering.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named-type1.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named1.js Adds imported fixture for inline named export declarations.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named1.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named2-type.js Adds imported fixture for type-only named export statements.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named2-type.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named2.js Adds imported fixture for named exports resolving local bindings.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named2.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named3-type.js Adds imported fixture for type-only named export alias statements.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named3-type.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named3.js Adds imported fixture for named export aliasing.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/named3.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/type-inline.js Adds imported fixture for module mode and unused bindings (T) cases.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/type-inline.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/type.js Adds imported fixture for type-related export lowering in JS output.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/export/type.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-body-shadow.js Adds imported fixture for default-param binding resolution vs body shadowing.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-body-shadow.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-const.js Adds imported fixture for default param referencing outer const.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-const.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-let.js Adds imported fixture for default param referencing outer let.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-let.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-nested-body-shadow.js Adds imported fixture for nested default-param function capturing outer vs shadowing.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-nested-body-shadow.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-nested.js Adds imported fixture for nested default-param closure scoping.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-nested.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-param-shadow.js Adds imported fixture for default param resolved against later param shadowing.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-param-shadow.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-partial.js Adds imported fixture for partial/member-expression default param refs.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/readable-ref-partial.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/writable-ref.js Adds imported fixture for default param writable binding.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/default-params/writable-ref.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/inherited-scope.js Adds imported fixture for outer-scope reference inside arrow function.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/inherited-scope.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/no-body.js Adds imported fixture for expression-body arrow functions and param bindings.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/no-body.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/params.js Adds imported fixture for arrow parameter bindings + unresolved refs.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/params.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/scope.js Adds imported fixture for arrow function scope behavior (var leaking, unresolved).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/scope.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-predicate-asserts1.js Adds imported fixture for TS-only syntax lowering that becomes JS no-op.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-predicate-asserts1.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-predicate-asserts2.js Adds imported fixture for TS-only asserts lowering (variant).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-predicate-asserts2.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-predicate1.js Adds imported fixture for type predicate lowering to runtime check.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-predicate1.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-predicate2.js Adds imported fixture for type predicate lowering (variant).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-predicate2.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-parameters/body-reference.js Adds imported fixture for TS type parameters being erased in JS output (body).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-parameters/body-reference.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-parameters/param-reference.js Adds imported fixture for TS type params erased but runtime params kept.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-parameters/param-reference.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-parameters/return-value-reference.js Adds imported fixture for TS return type param erasure.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-parameters/return-value-reference.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-parameters/type-param-reference.js Adds imported fixture for type param reference erasure.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-parameters/type-param-reference.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-parameters/type-parameter-declaration.js Adds imported fixture for type param declaration erasure.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/arrow/type-parameters/type-parameter-declaration.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-body-shadow.js Adds imported fixture for function decl default param vs body shadowing.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-body-shadow.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-const.js Adds imported fixture for default param capturing outer const (function decl).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-const.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-let.js Adds imported fixture for default param capturing outer let (function decl).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-let.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-nested-body-shadow.js Adds imported fixture for nested default closures + body shadowing (function decl).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-nested-body-shadow.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-nested.js Adds imported fixture for nested default closures (function decl).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-nested.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-param-shadow.js Adds imported fixture for default param resolved to later param (function decl).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-param-shadow.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-partial.js Adds imported fixture for partial/member-expr in default param (function decl).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/readable-ref-partial.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/writable-ref.js Adds imported fixture for default param writable binding (function decl).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/default-params/writable-ref.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/inherited-scope.js Adds imported fixture for function decl referencing outer scope.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/inherited-scope.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/name-shadowed-in-body.js Adds imported fixture where function name is shadowed in its body.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/name-shadowed-in-body.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/overload.js Adds imported fixture for overload-like patterns lowered to JS.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/overload.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/params.js Adds imported fixture for complex params + unresolved refs (function decl).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/params.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/scope.js Adds imported fixture for function decl + var scope behavior.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/scope.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-predicate-asserts1.js Adds imported fixture for TS-only asserts/type predicate erasure.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-predicate-asserts1.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-predicate-asserts2.js Adds imported fixture for asserts/type predicate erasure (variant).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-predicate-asserts2.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-predicate1.js Adds imported fixture for type predicate lowering to runtime check.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-predicate1.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-predicate2.js Adds imported fixture for type predicate lowering (variant).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-predicate2.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-parameters/body-reference.js Adds imported fixture for TS type params erased in function decl bodies.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-parameters/body-reference.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-parameters/param-reference.js Adds imported fixture for param reference when type params are erased.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-parameters/param-reference.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-parameters/return-value-reference.js Adds imported fixture for return type param erasure.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-parameters/return-value-reference.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-parameters/type-param-reference.js Adds imported fixture for type param reference erasure.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-parameters/type-param-reference.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-parameters/type-parameter-declaration.js Adds imported fixture for type param declaration erasure.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-declaration/type-parameters/type-parameter-declaration.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-expression/anonymous.js Adds imported fixture for anonymous function expressions.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-expression/anonymous.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-expression/default-params/readable-ref-body-shadow.js Adds imported fixture for function expr default params vs body shadowing.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-expression/default-params/readable-ref-body-shadow.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-expression/default-params/readable-ref-const.js Adds imported fixture for default param referencing outer const (function expr).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-expression/default-params/readable-ref-const.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-expression/default-params/readable-ref-let.js Adds imported fixture for default param referencing outer let (function expr).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-expression/default-params/readable-ref-let.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-expression/default-params/readable-ref-nested-body-shadow.js Adds imported fixture for nested default closure + body shadowing (function expr).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-expression/default-params/readable-ref-nested-body-shadow.js.snap.json Snapshot for the imported fixture.
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-expression/default-params/readable-ref-nested.js Adds imported fixture for nested default closure scoping (function expr).
packages/plugin-rsc/src/transforms/fixtures/scope/typescript-eslint/functions/function-expression/default-params/readable-ref-nested.js.snap.json Snapshot for the imported fixture.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Co-authored-by: Codex <noreply@openai.com>
@hi-ogawa hi-ogawa marked this pull request as ready for review April 4, 2026 15:33
hi-ogawa and others added 15 commits April 5, 2026 08:55
Co-authored-by: Codex <noreply@openai.com>
Survey of 8 prior art scope analyzers (periscopic, vite-ssr,
eslint-scope, babel-traverse, oxc_semantic, oxc-walker, next.js,
typescript-eslint) compared against our custom buildScopeTree.

Documents data models, scope types, resolution strategies, and
bugs found in both ours and theirs — including the default-param
+ var hoisting spec violation in our implementation.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Codex <noreply@openai.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Codex <noreply@openai.com>
Co-authored-by: Codex <noreply@openai.com>
…note

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
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.

2 participants