Repository navigation
Add missing recursive vistor on copied import type nodes - #58165
Wesley Wigham (weswigham) merged 3 commits into
Conversation
| > : ^ ^^ ^^^^^^^^^ | ||
| >a : A | ||
| > : ^ | ||
| >copy : (other: import(} fro).Foo) => void |
There was a problem hiding this comment.
That we already had a test demonstrating the issue is... yeah, reviewing big baseline diffs is hard - easy to miss the one test that's still off. And that's why we try and break it down where we can. 🤷♂️
| encode(value: T): Uint8Array; | ||
| } | ||
| export type IEncoder<T> = import('./interface').Encoder<T>; | ||
| export type IEncoder<T> = import("./interface").Encoder<T>; |
There was a problem hiding this comment.
Since we're doing the recursive visit on the specifier now, the quote-style-conformity change we just made is now also being applied here~
| //// [index.d.ts] | ||
| export declare const d: { | ||
| e: { | ||
| f: (foo: import("../projA").Foo) => boolean; |
There was a problem hiding this comment.
If I didn't also swap to getSpecifierForModuleSymbol as part of this, this emits as "../projA/index" because, well, getResolvedExternalModuleName is not the robust specifier generation solution in the checker that calls into moduleSpecifiers.ts, while getSpecifierForModuleSymbol is. getResolvedExternalModuleName was probably sufficient for just handling the unbundled -> bundled specifier case (which is all the declarations.ts version of rewriteModuleSpecifier needs to handle and what this was originally based on), but doesn't handle rewriting specifiers copied from other files, which is an additional case the node builder needs to handle (and as of this week, happens waaaaaaay more often). getSpecifierForModuleSymbol, however, does (and caches the results).
|
I can confirm that this fixes the issue in our codebase |
And swap to using the cached (and much more robust)
getSpecifierForModuleSymbolfor generating new specifiers while we're at it (so we can more often know to reuse the input node when the specifier matches).Fixes #58159