@hydranium/core 1.0.0-next.351 → 1.0.0-next.352

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -42,6 +42,10 @@ export interface BuildPipelineIntegrationOptions {
42
42
  * and they compare by declaration rather than by shape. The cost of the empty
43
43
  * shape is that any non-null value satisfies it, so a mis-bound slot compiles
44
44
  * and the framework's phase listeners are then never attached.
45
+ *
46
+ * A replacement that does not subclass {@link DefaultBuildPipelineIntegration}
47
+ * also drops the local symbols it records, so `HydraniumScopeProvider` answers
48
+ * a node of a root a rebuild replaced with index names only.
45
49
  */
46
50
  export interface BuildPipelineIntegration {
47
51
  }
@@ -63,7 +67,8 @@ export interface BuildPipelineIntegration {
63
67
  *
64
68
  * Adopters subclass to change *how* a feature is invoked by overriding one
65
69
  * protected per-feature helper — {@link callIntegrity} (integrity enforcement),
66
- * {@link extendAst} (per-document AST enrichment), or {@link runBuildPhase}
70
+ * {@link extendAst} (per-document AST enrichment), {@link recordLocalSymbols}
71
+ * (local symbols per root), or {@link runBuildPhase}
67
72
  * (batch-level build-phase pass dispatch) — or to wire an additional phase
68
73
  * (override the constructor).
69
74
  *
@@ -93,6 +98,13 @@ export declare class DefaultBuildPipelineIntegration implements BuildPipelineInt
93
98
  * leaves a cross-grammar reference resolving against a mid-rebuild scope.
94
99
  */
95
100
  protected clearScopeCaches(): void;
101
+ /**
102
+ * Keep `document`'s local symbols for the root they were computed for. A
103
+ * rebuild clears and re-keys `document.localSymbols`, and
104
+ * `HydraniumScopeProvider.localSymbolsOf` answers a node of the old root
105
+ * from what this kept.
106
+ */
107
+ protected recordLocalSymbols(document: LangiumDocument): void;
96
108
  /** Run AST enrichment for a single document at `phase` via its language service. */
97
109
  protected extendAst(document: LangiumDocument, phase: DocumentState, cancelToken: CancellationToken): void;
98
110
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"build-pipeline-integration.d.ts","sourceRoot":"","sources":["../../../src/langium/document-builder/build-pipeline-integration.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI/D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAGzD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C,iEAAiE;AACjE,MAAM,WAAW,+BAA+B;IAC7C;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED;;;;;;;;;GASG;AAEH,MAAM,WAAW,wBAAwB;CAAG;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,qBAAa,+BAAgC,YAAW,wBAAwB;IAE1E,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB;IADpD,YACsB,QAAQ,EAAE,oBAAoB,EACjD,OAAO,GAAE,+BAAoC,EA4D/C;IAMD;;;;;;;;;;OAUG;IACH,UAAgB,aAAa,CAC1B,SAAS,EAAE,SAAS,eAAe,EAAE,EACrC,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,iBAAiB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAUf;IAED;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,IAAI,IAAI,CAIjC;IAED,oFAAoF;IACpF,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAEzG;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAElI;CACH"}
1
+ {"version":3,"file":"build-pipeline-integration.d.ts","sourceRoot":"","sources":["../../../src/langium/document-builder/build-pipeline-integration.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,eAAe,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACzE,OAAO,EAAE,KAAK,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAI/D,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAIzD;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,uBAAuB,QAAQ,CAAC;AAE7C,iEAAiE;AACjE,MAAM,WAAW,+BAA+B;IAC7C;;;;;;OAMG;IACH,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CACtC;AAED;;;;;;;;;;;;;GAaG;AAEH,MAAM,WAAW,wBAAwB;CAAG;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,qBAAa,+BAAgC,YAAW,wBAAwB;IAE1E,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,oBAAoB;IADpD,YACsB,QAAQ,EAAE,oBAAoB,EACjD,OAAO,GAAE,+BAAoC,EAkE/C;IAMD;;;;;;;;;;OAUG;IACH,UAAgB,aAAa,CAC1B,SAAS,EAAE,SAAS,eAAe,EAAE,EACrC,KAAK,EAAE,aAAa,EACpB,WAAW,EAAE,iBAAiB,GAC9B,OAAO,CAAC,IAAI,CAAC,CAUf;IAED;;;;;;OAMG;IACH,SAAS,CAAC,gBAAgB,IAAI,IAAI,CAIjC;IAED;;;;;OAKG;IACH,SAAS,CAAC,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAI5D;IAED,oFAAoF;IACpF,SAAS,CAAC,SAAS,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,GAAG,IAAI,CAEzG;IAED;;;;;;;OAOG;IACH,SAAS,CAAC,aAAa,CAAC,SAAS,EAAE,SAAS,eAAe,EAAE,EAAE,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CAElI;CACH"}
@@ -10,6 +10,7 @@ import { DocumentState } from '@hydranium/langium';
10
10
  import { IntegrityPhase } from '../integrity/integrity-rule.js';
11
11
  import { AstExtensionPhase } from '../ast-extension/ast-extension-service.js';
12
12
  import { BuildPassPhase, groupDocumentsByLanguage } from '../build-phase-pass/build-phase-pass.js';
13
+ import { builtLocalSymbols } from '../scope/built-local-symbols.js';
13
14
  import { labelPhaseListener } from './labeled-phase-listener.js';
14
15
  /**
15
16
  * Default priority of the framework integrity passes. Integrity mutates / cleans
@@ -42,7 +43,8 @@ export const INTEGRITY_PASS_PRIORITY = -1000;
42
43
  *
43
44
  * Adopters subclass to change *how* a feature is invoked by overriding one
44
45
  * protected per-feature helper — {@link callIntegrity} (integrity enforcement),
45
- * {@link extendAst} (per-document AST enrichment), or {@link runBuildPhase}
46
+ * {@link extendAst} (per-document AST enrichment), {@link recordLocalSymbols}
47
+ * (local symbols per root), or {@link runBuildPhase}
46
48
  * (batch-level build-phase pass dispatch) — or to wire an additional phase
47
49
  * (override the constructor).
48
50
  *
@@ -83,6 +85,8 @@ export class DefaultBuildPipelineIntegration {
83
85
  // inside the `Linked` phase and fires no build-phase notification, so a
84
86
  // batch-level listener cannot see the AST it replaced.
85
87
  builder.onDocumentPhase(DocumentState.IndexedContent, labelPhaseListener(() => this.clearScopeCaches(), 'BuildPipeline.clearScopeCaches'));
88
+ // Per document, once the builder assigned the map, whichever computation made it.
89
+ builder.onDocumentPhase(DocumentState.ComputedScopes, labelPhaseListener((document) => this.recordLocalSymbols(document), 'BuildPipeline.recordLocalSymbols'));
86
90
  // AST enrichment stays per-document (onDocumentPhase) and node-granular —
87
91
  // unchanged by the build-phase-pass registry, which is batch-granular. The
88
92
  // listener calls the `extendAst` seam directly (the document-phase analog of
@@ -130,6 +134,17 @@ export class DefaultBuildPipelineIntegration {
130
134
  languageServices.references.ScopeProvider.clearScopeCaches();
131
135
  }
132
136
  }
137
+ /**
138
+ * Keep `document`'s local symbols for the root they were computed for. A
139
+ * rebuild clears and re-keys `document.localSymbols`, and
140
+ * `HydraniumScopeProvider.localSymbolsOf` answers a node of the old root
141
+ * from what this kept.
142
+ */
143
+ recordLocalSymbols(document) {
144
+ if (document.localSymbols !== undefined) {
145
+ builtLocalSymbols.set(document.parseResult.value, document.localSymbols);
146
+ }
147
+ }
133
148
  /** Run AST enrichment for a single document at `phase` via its language service. */
134
149
  extendAst(document, phase, cancelToken) {
135
150
  this.services.ServiceRegistry.getServices(document.uri).ast.AstExtensionService.extendDocument(document, phase, cancelToken);
@@ -1 +1 @@
1
- {"version":3,"file":"build-pipeline-integration.js","sourceRoot":"","sources":["../../../src/langium/document-builder/build-pipeline-integration.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"build-pipeline-integration.js","sourceRoot":"","sources":["../../../src/langium/document-builder/build-pipeline-integration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ import type { AstNode, LocalSymbols } from '@hydranium/langium';
10
+ /** The local symbols each build computed, by the root it computed them for. */
11
+ export declare const builtLocalSymbols: WeakMap<AstNode, LocalSymbols>;
12
+ //# sourceMappingURL=built-local-symbols.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"built-local-symbols.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/built-local-symbols.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEhE,+EAA+E;AAC/E,eAAO,MAAM,iBAAiB,gCAAuC,CAAC"}
@@ -0,0 +1,11 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+ /** The local symbols each build computed, by the root it computed them for. */
10
+ export const builtLocalSymbols = new WeakMap();
11
+ //# sourceMappingURL=built-local-symbols.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"built-local-symbols.js","sourceRoot":"","sources":["../../../src/langium/scope/built-local-symbols.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,+EAA+E;AAC/E,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAyB,CAAC"}
@@ -182,6 +182,13 @@ export declare class HydraniumScopeProvider extends DefaultScopeProvider {
182
182
  * costs its references plus its declarations, not their product.
183
183
  */
184
184
  getScope(context: ReferenceInfo): Scope;
185
+ /**
186
+ * The local symbols of the build that `node`'s root came from: the
187
+ * document's while they are set for that root, else the ones the build
188
+ * pipeline recorded for it when its document computed scopes. A rebuild
189
+ * clears the document's, then keys them by the new root's nodes.
190
+ */
191
+ protected localSymbolsOf(node: AstNode): LocalSymbols | undefined;
185
192
  /**
186
193
  * The symbols `container` declares that a `referenceType` reference can
187
194
  * reach, through {@link createScope}, built once per `localSymbols`.
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-scope-provider.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydranium-scope-provider.d.ts","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-provider.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@
9
9
  import { isDocumentSource, isElementSource, isReferenceContext, isSyntheticSource } from '@hydranium/protocol';
10
10
  import { AstUtils, DefaultScopeProvider, MapScope, MultiMapScope, UriUtils, WorkspaceCache, stream } from '@hydranium/langium';
11
11
  import { buildAstNode } from '../ast-extension/ast-node-builder.js';
12
+ import { builtLocalSymbols } from './built-local-symbols.js';
12
13
  import { FallbackScope } from './fallback-scope.js';
13
14
  import { isTieredDescription } from './scoped-ast-node-description.js';
14
15
  /**
@@ -137,7 +138,7 @@ export class HydraniumScopeProvider extends DefaultScopeProvider {
137
138
  */
138
139
  getScope(context) {
139
140
  const referenceType = this.reflection.getReferenceType(context);
140
- const localSymbols = AstUtils.getDocument(context.container).localSymbols;
141
+ const localSymbols = this.localSymbolsOf(context.container);
141
142
  let result = this.getGlobalScope(referenceType, context);
142
143
  if (localSymbols === undefined) {
143
144
  return result;
@@ -154,6 +155,21 @@ export class HydraniumScopeProvider extends DefaultScopeProvider {
154
155
  }
155
156
  return result;
156
157
  }
158
+ /**
159
+ * The local symbols of the build that `node`'s root came from: the
160
+ * document's while they are set for that root, else the ones the build
161
+ * pipeline recorded for it when its document computed scopes. A rebuild
162
+ * clears the document's, then keys them by the new root's nodes.
163
+ */
164
+ localSymbolsOf(node) {
165
+ const root = AstUtils.findRootNode(node);
166
+ const document = AstUtils.getDocument(root);
167
+ const recorded = builtLocalSymbols.get(root);
168
+ if (recorded === undefined || (document.parseResult.value === root && document.localSymbols !== undefined)) {
169
+ return document.localSymbols;
170
+ }
171
+ return recorded;
172
+ }
157
173
  /**
158
174
  * The symbols `container` declares that a `referenceType` reference can
159
175
  * reach, through {@link createScope}, built once per `localSymbols`.
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-scope-provider.js","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-provider.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydranium-scope-provider.js","sourceRoot":"","sources":["../../../src/langium/scope/hydranium-scope-provider.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hydranium/core",
3
- "version": "1.0.0-next.351",
3
+ "version": "1.0.0-next.352",
4
4
  "description": "Foundational runtime of the hydranium framework: AST coordination layer (services, integrity, AST extension, serialization, multi-client documents) plus the LSP textual head at the /lsp subpath. Consumed by protocol-head packages (@hydranium/data-server, @hydranium/glsp-server).",
5
5
  "keywords": [
6
6
  "ast",
@@ -87,8 +87,8 @@
87
87
  "diff": "^5.2.0"
88
88
  },
89
89
  "devDependencies": {
90
- "@hydranium/langium": "1.0.0-next.351",
91
- "@hydranium/protocol": "1.0.0-next.351",
90
+ "@hydranium/langium": "1.0.0-next.352",
91
+ "@hydranium/protocol": "1.0.0-next.352",
92
92
  "@playwright/test": "^1.55.0",
93
93
  "@types/diff": "^5.2.0",
94
94
  "fake-indexeddb": "^6.2.5",
@@ -101,8 +101,8 @@
101
101
  "vscode-languageserver-types": "3.18.0"
102
102
  },
103
103
  "peerDependencies": {
104
- "@hydranium/langium": "1.0.0-next.351",
105
- "@hydranium/protocol": "1.0.0-next.351",
104
+ "@hydranium/langium": "1.0.0-next.352",
105
+ "@hydranium/protocol": "1.0.0-next.352",
106
106
  "@playwright/test": "^1.40.0",
107
107
  "vscode-jsonrpc": "^9.0.0",
108
108
  "vscode-languageserver": "~10.0.1",
@@ -13,6 +13,7 @@ import { IntegrityPhase } from '../integrity/integrity-rule.js';
13
13
  import { AstExtensionPhase } from '../ast-extension/ast-extension-service.js';
14
14
  import { BuildPassPhase, groupDocumentsByLanguage } from '../build-phase-pass/build-phase-pass.js';
15
15
  import { type ServerSharedServices } from '../module.js';
16
+ import { builtLocalSymbols } from '../scope/built-local-symbols.js';
16
17
  import { labelPhaseListener } from './labeled-phase-listener.js';
17
18
 
18
19
  /**
@@ -50,6 +51,10 @@ export interface BuildPipelineIntegrationOptions {
50
51
  * and they compare by declaration rather than by shape. The cost of the empty
51
52
  * shape is that any non-null value satisfies it, so a mis-bound slot compiles
52
53
  * and the framework's phase listeners are then never attached.
54
+ *
55
+ * A replacement that does not subclass {@link DefaultBuildPipelineIntegration}
56
+ * also drops the local symbols it records, so `HydraniumScopeProvider` answers
57
+ * a node of a root a rebuild replaced with index names only.
53
58
  */
54
59
  // eslint-disable-next-line @typescript-eslint/no-empty-object-type -- the slot has no public member to name
55
60
  export interface BuildPipelineIntegration {}
@@ -72,7 +77,8 @@ export interface BuildPipelineIntegration {}
72
77
  *
73
78
  * Adopters subclass to change *how* a feature is invoked by overriding one
74
79
  * protected per-feature helper — {@link callIntegrity} (integrity enforcement),
75
- * {@link extendAst} (per-document AST enrichment), or {@link runBuildPhase}
80
+ * {@link extendAst} (per-document AST enrichment), {@link recordLocalSymbols}
81
+ * (local symbols per root), or {@link runBuildPhase}
76
82
  * (batch-level build-phase pass dispatch) — or to wire an additional phase
77
83
  * (override the constructor).
78
84
  *
@@ -127,6 +133,12 @@ export class DefaultBuildPipelineIntegration implements BuildPipelineIntegration
127
133
  labelPhaseListener(() => this.clearScopeCaches(), 'BuildPipeline.clearScopeCaches')
128
134
  );
129
135
 
136
+ // Per document, once the builder assigned the map, whichever computation made it.
137
+ builder.onDocumentPhase(
138
+ DocumentState.ComputedScopes,
139
+ labelPhaseListener((document: LangiumDocument) => this.recordLocalSymbols(document), 'BuildPipeline.recordLocalSymbols')
140
+ );
141
+
130
142
  // AST enrichment stays per-document (onDocumentPhase) and node-granular —
131
143
  // unchanged by the build-phase-pass registry, which is batch-granular. The
132
144
  // listener calls the `extendAst` seam directly (the document-phase analog of
@@ -188,6 +200,18 @@ export class DefaultBuildPipelineIntegration implements BuildPipelineIntegration
188
200
  }
189
201
  }
190
202
 
203
+ /**
204
+ * Keep `document`'s local symbols for the root they were computed for. A
205
+ * rebuild clears and re-keys `document.localSymbols`, and
206
+ * `HydraniumScopeProvider.localSymbolsOf` answers a node of the old root
207
+ * from what this kept.
208
+ */
209
+ protected recordLocalSymbols(document: LangiumDocument): void {
210
+ if (document.localSymbols !== undefined) {
211
+ builtLocalSymbols.set(document.parseResult.value, document.localSymbols);
212
+ }
213
+ }
214
+
191
215
  /** Run AST enrichment for a single document at `phase` via its language service. */
192
216
  protected extendAst(document: LangiumDocument, phase: DocumentState, cancelToken: CancellationToken): void {
193
217
  this.services.ServiceRegistry.getServices(document.uri).ast.AstExtensionService.extendDocument(document, phase, cancelToken);
@@ -0,0 +1,13 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the MIT License which is available in the project root.
6
+ *
7
+ * SPDX-License-Identifier: MIT
8
+ ********************************************************************************/
9
+
10
+ import type { AstNode, LocalSymbols } from '@hydranium/langium';
11
+
12
+ /** The local symbols each build computed, by the root it computed them for. */
13
+ export const builtLocalSymbols = new WeakMap<AstNode, LocalSymbols>();
@@ -40,6 +40,7 @@ import { type LogNameOptions } from '../diagnostics/logger.js';
40
40
  import { type HydraniumLanguageServices } from '../language-module.js';
41
41
  import { type NameProvider } from '../naming/name-provider.js';
42
42
  import { type HydraniumDocumentRegistry } from '../workspace/langium-documents.js';
43
+ import { builtLocalSymbols } from './built-local-symbols.js';
43
44
  import { FallbackScope } from './fallback-scope.js';
44
45
  import { type ScopeExtensionDescriptions, type ScopeExtensionService } from './scope-extension-service.js';
45
46
  import { type TieredAstNodeDescription, isTieredDescription } from './scoped-ast-node-description.js';
@@ -231,7 +232,7 @@ export class HydraniumScopeProvider extends DefaultScopeProvider {
231
232
  */
232
233
  override getScope(context: ReferenceInfo): Scope {
233
234
  const referenceType = this.reflection.getReferenceType(context);
234
- const localSymbols = AstUtils.getDocument(context.container).localSymbols;
235
+ const localSymbols = this.localSymbolsOf(context.container);
235
236
  let result = this.getGlobalScope(referenceType, context);
236
237
  if (localSymbols === undefined) {
237
238
  return result;
@@ -249,6 +250,22 @@ export class HydraniumScopeProvider extends DefaultScopeProvider {
249
250
  return result;
250
251
  }
251
252
 
253
+ /**
254
+ * The local symbols of the build that `node`'s root came from: the
255
+ * document's while they are set for that root, else the ones the build
256
+ * pipeline recorded for it when its document computed scopes. A rebuild
257
+ * clears the document's, then keys them by the new root's nodes.
258
+ */
259
+ protected localSymbolsOf(node: AstNode): LocalSymbols | undefined {
260
+ const root = AstUtils.findRootNode(node);
261
+ const document = AstUtils.getDocument(root);
262
+ const recorded = builtLocalSymbols.get(root);
263
+ if (recorded === undefined || (document.parseResult.value === root && document.localSymbols !== undefined)) {
264
+ return document.localSymbols;
265
+ }
266
+ return recorded;
267
+ }
268
+
252
269
  /**
253
270
  * The symbols `container` declares that a `referenceType` reference can
254
271
  * reach, through {@link createScope}, built once per `localSymbols`.