Skip to content

refactor: New file generates import from wrong module specifier #58897

Open
@gsk143

Description

@gsk143

Does this issue occur when all extensions are disabled?: Yes

Version: 1.90.0 (user setup)
Commit: 89de5a8d4d6205e5b11647eb6a74844ca23d2573
Date: 2024-06-04T19:33:54.889Z
Electron: 29.4.0
ElectronBuildId: 9593362
Chromium: 122.0.6261.156
Node.js: 20.9.0
V8: 12.2.281.27-electron.0
OS: Windows_NT x64 10.0.22631

Steps to Reproduce:

import prisma from "@/prisma/client";
import { NextRequest, NextResponse } from "next/server";
import { z } from "zod";

const createIssueSchema = z.object({
  title: z.string().min(1).max(255),
  description: z.string().min(1),
});

Try refactoring createIssueSchema variable to a new file
2024-06-12 09:20:14.898 [error] <semantic> TypeScript Server Error (5.5.0-dev.20240505) Debug Failure. Error: Debug Failure. at Object.addImportFromExportedSymbol (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:154711:32) at c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:144661:19 at Map.forEach (<anonymous>) at addTargetFileImports (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:144655:17) at getNewStatementsAndRemoveFromOldFile (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:143871:3) at doChange4 (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:144853:3) at c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:144842:77 at _ChangeTracker.with (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:174963:5) at Object.getRefactorEditsToMoveToNewFile [as getEditsForAction] (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:144842:60) at Object.getEditsForRefactor (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:142944:31) at Object.getEditsForRefactor2 [as getEditsForRefactor] (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:150350:32) at IpcIOSession.getEditsForRefactor (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:191692:49) at getEditsForRefactor (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:189914:43) at c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:192078:69 at IpcIOSession.executeWithRequestId (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:192070:14) at IpcIOSession.executeCommand (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:192078:29) at IpcIOSession.onMessage (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:192120:51) at process.<anonymous> (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\tsserver.js:528:14) at process.emit (node:events:514:28) at emit (node:internal/child_process:951:14) at process.processTicksAndRejections (node:internal/process/task_queues:83:21): Error: <semantic> TypeScript Server Error (5.5.0-dev.20240505) Debug Failure. Error: Debug Failure. at Object.addImportFromExportedSymbol (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:154711:32) at c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:144661:19 at Map.forEach (<anonymous>) at addTargetFileImports (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:144655:17) at getNewStatementsAndRemoveFromOldFile (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:143871:3) at doChange4 (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:144853:3) at c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:144842:77 at _ChangeTracker.with (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:174963:5) at Object.getRefactorEditsToMoveToNewFile [as getEditsForAction] (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:144842:60) at Object.getEditsForRefactor (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:142944:31) at Object.getEditsForRefactor2 [as getEditsForRefactor] (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:150350:32) at IpcIOSession.getEditsForRefactor (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:191692:49) at getEditsForRefactor (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:189914:43) at c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:192078:69 at IpcIOSession.executeWithRequestId (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:192070:14) at IpcIOSession.executeCommand (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:192078:29) at IpcIOSession.onMessage (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\typescript.js:192120:51) at process.<anonymous> (c:\Users\ASUS\.vscode\extensions\ms-vscode.vscode-typescript-next-5.5.20240505\node_modules\typescript\lib\tsserver.js:528:14) at process.emit (node:events:514:28) at emit (node:internal/child_process:951:14) at process.processTicksAndRejections (node:internal/process/task_queues:83:21) at n.create (c:\Users\ASUS\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\typescript-language-features\dist\extension.js:1:473136) at v.dispatchResponse (c:\Users\ASUS\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\typescript-language-features\dist\extension.js:1:467106) at v.dispatchMessage (c:\Users\ASUS\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\typescript-language-features\dist\extension.js:1:465950) at ChildProcess.<anonymous> (c:\Users\ASUS\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\typescript-language-features\dist\extension.js:1:465443) at ChildProcess.emit (node:events:514:28) at emit (node:internal/child_process:951:14) at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
tsc version : 5.4.5

Activity

leonsbuddydave

leonsbuddydave commented on Jun 13, 2024

@leonsbuddydave

Doesn't seem to work when refactoring to an existing file either. I tried creating a new blank file manually and then refactoring to that file but VSCode ignores it.

Version info:
image

transferred this issue frommicrosoft/vscodeon Jun 17, 2024
added
CrashFor flagging bugs which are compiler or service crashes or unclean exits, rather than bad output
on Jul 2, 2024
lemomar

lemomar commented on Jul 6, 2024

@lemomar

I'm having this problem in a Next.js project as well, is it specific to Next?

nolanleung

nolanleung commented on Jul 7, 2024

@nolanleung

Seems like the culprit is something in ^5.5 breaks refactoring imports from sym-linked packages.

Example (Works in v5.4.5 but not v5.5.2)

Running Refactor: Move to new file on SomeComponent correctly moves it and the Button import to SomeComponent.tsx, and updates the import in SomeOtherComponent.tsx to import { SomeComponent } from './SomeComponent'.

// apps/web/components/SomeOtherComponent.tsx

import { Button } from "@repo/ui";

export function SomeComponent() {
  return (
    <div>
      Some Component
      <Button>Click Me</Button>
    </div>
  );
}


export function SomeOtherComponent() {
  return (
    <div>
      <SomeComponent />
      <div>Some other component</div>
      <CheckList value={[]} options={[]} />
    </div>
  );
}
etiennejcharles

etiennejcharles commented on Jul 10, 2024

@etiennejcharles

I'm having this problem in a Next.js project as well, is it specific to Next?

No - It's caused by the typescript version you're using as commented by @nolanleung ealier

In your terminal:

  • npm i typescript@5.4.5 -D
  • Then In your command pallette - TypeScript: Select TypeScript Version..
  • Choose 5.4.5

And try the command, you'll see that it works ✅

29 remaining items

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

BugA bug in TypeScriptCrashFor flagging bugs which are compiler or service crashes or unclean exits, rather than bad output

Type

No type

Projects

No projects

Relationships

None yet

    Development

    No branches or pull requests

      Participants

      @leonsbuddydave@DanielRosenwasser@sidouglas@aaronmw@anback

      Issue actions

        refactor: New file generates import from wrong module specifier · Issue #58897 · microsoft/TypeScript