From 0a2d6ee487f636ebf3fa0ea8fe7a644d8fe87302 Mon Sep 17 00:00:00 2001 From: Nic <162764842+Nic-Polumeyv@users.noreply.github.com> Date: Tue, 15 Sep 2026 11:08:21 -0400 Subject: [PATCH] a declaration is a reference --- packages/svelte/src/compiler/phases/scope.js | 6 ++++-- packages/svelte/src/compiler/utils/ast.js | 5 ++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/packages/svelte/src/compiler/phases/scope.js b/packages/svelte/src/compiler/phases/scope.js index 5652c63c91..f0885f8545 100644 --- a/packages/svelte/src/compiler/phases/scope.js +++ b/packages/svelte/src/compiler/phases/scope.js @@ -5,7 +5,7 @@ import { walk } from 'zimmerframe'; import { ExpressionMetadata } from './nodes.js'; import * as b from '#compiler/builders'; import * as e from '../errors.js'; -import { bindingOf, parentOf } from '@teasel/parser'; +import { referenceOf, parentOf } from '@teasel/parser'; import { extract_identifiers, tables_of, @@ -1086,6 +1086,7 @@ export function create_scopes(ast, root, allow_reactive_declarations, parent) { answer.bindings.length === 0 ) { for (const reference of answer.references) { + if (reference.declares) continue; references.push(new Reference(reference.node, scope, path, false, undefined, reference)); } return; @@ -1182,6 +1183,7 @@ export function create_scopes(ast, root, allow_reactive_declarations, parent) { ]); } for (const reference of answer.references) { + if (reference.declares) continue; const binding = reference.binding === null ? undefined : from_parser.get(reference.binding); entries.push([ reference.node, @@ -1232,7 +1234,7 @@ export function create_scopes(ast, root, allow_reactive_declarations, parent) { /** The parser's declaration a Svelte binding stands for, once declared. @param {Identifier} id */ function declared(id) { - const parsed = bindingOf(id); + const parsed = referenceOf(id)?.binding; return parsed ? from_parser.get(parsed) : undefined; } diff --git a/packages/svelte/src/compiler/utils/ast.js b/packages/svelte/src/compiler/utils/ast.js index 27cab2e914..de659f380a 100644 --- a/packages/svelte/src/compiler/utils/ast.js +++ b/packages/svelte/src/compiler/utils/ast.js @@ -1,7 +1,7 @@ /** @import { AST, Scope } from '#compiler' */ /** @import * as ESTree from 'estree' */ import { walk } from 'zimmerframe'; -import { bindingOf } from '@teasel/parser'; +import { referenceOf } from '@teasel/parser'; /** * @typedef {import('@teasel/parser').Root} Tables @@ -673,8 +673,7 @@ export const value_names = new WeakSet(); * @param {ESTree.Node | AST.SvelteNode | null | undefined} parent */ export function is_reference(node, parent) { - const binding = bindingOf(node); - if (binding !== undefined || value_names.has(node)) return true; + if (referenceOf(node) !== undefined || value_names.has(node)) return true; if (!parent) return true; switch (parent.type) { case 'MemberExpression':