[WIP] Reference missing with declare module
Thanks for assigning this issue to me. I'm starting to work on it and will keep this PR's description up to date as I form a plan and make progress.
Original issue description:
🔎 Search Terms
missing reference
🕗 Version & Regression Information
- Typescript 5.8.3 with VisualStudio Code 1.100.2
- Typescript 5.0.2 with MonacoEditor 0.39.0
⏯ Playground Link
No response
💻 Code
bugReportApi.d.ts
declare module '@bug/api/index' { export * from "@bug/api/miscFunctions"; } declare module '@bug/api/miscFunctions' { export function myFunction(testParam: string): Promise<void>; } declare namespace bug.v0 {const api: typeof import('@bug/api/index')}test.ts
bug.v0.api.myFunction('test')🙁 Actual behavior
When I search for references to "myFunction", I only find the declaration in 'bugReportApi.d.ts', but not its usage in 'test.ts'. However, if I copy the contents of 'bugReportApi.d.ts' into a new file named 'bugReportApiC.d.ts' and search for references again, I find two declarations ('bugReportApi.d.ts' and 'bugReportApiC.d.ts') as well as the usage in 'test.ts'.
🙂 Expected behavior
The usage in 'test.ts' is found as reference.
Additional information about the issue
Maybe it's the same issue as https://github.com/microsoft/TypeScript/issues/61741
Fixes #61766.
💬 Share your feedback on Copilot coding agent for the chance to win a $200 gift card! Click here to start the survey.
@copilot try again
@copilot try again
Fixed the issue in commit a7f0df5. The problem was in the getSymbolScope function which incorrectly limited the search scope for declare module exports to just their source file, when they should have global visibility. The fix ensures declare module exports use global search scope so references across files are found correctly.
Tests failed. Should try again, this might be a good fix