Skip to content

Cannot Move React Class Component To New File #59747

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
hediet opened this issue Aug 25, 2024 · 4 comments · Fixed by #60333
Closed

Cannot Move React Class Component To New File #59747

hediet opened this issue Aug 25, 2024 · 4 comments · Fixed by #60333
Assignees
Labels
Bug A bug in TypeScript Domain: Refactorings e.g. extract to constant or function, rename symbol Effort: Moderate Requires experience with the TypeScript codebase, but feasible. Harder than "Effort: Casual". Help Wanted You can do this

Comments

@hediet
Copy link
Member

hediet commented Aug 25, 2024

🔎 Search Terms

After invoking the code action "Move To A New File" on a react class component, this error is printed to the dev console:

semantic> TypeScript Server Error (5.5.4)
Debug Failure.
Error: Debug Failure.
    at Object.addImportFromExportedSymbol (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:154243:32)
    at c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:144288:19
    at Map.forEach (<anonymous>)
    at addTargetFileImports (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:144282:17)
    at getNewStatementsAndRemoveFromOldFile (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:143512:3)
    at doChange4 (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:144488:3)
    at c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:144477:77
    at _ChangeTracker.with (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:174306:5)
    at Object.getRefactorEditsToMoveToNewFile [as getEditsForAction] (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:144477:60)
    at Object.getEditsForRefactor (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:142603:31)
    at Object.getEditsForRefactor2 [as getEditsForRefactor] (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:149939:32)
    at decorator.<computed> [as getEditsForRefactor] (c:\Users\hdieterichs\.vscode-insiders\extensions\p42ai.refactor-3.0.1\node_modules\@p42\hide-typescript-refactors\build\index.js:28:36)
    at IpcIOSession.getEditsForRefactor (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:191087:49)
    at getEditsForRefactor (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:189305:43)
    at c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:191491:69
    at IpcIOSession.executeWithRequestId (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:191483:14)
    at IpcIOSession.executeCommand (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:191491:29)
    at IpcIOSession.onMessage (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:191533:51)
    at process.<anonymous> (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\tsserver.js:523:14)
    at process.emit (node:events:519: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.4)
Debug Failure.
Error: Debug Failure.
    at Object.addImportFromExportedSymbol (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:154243:32)
    at c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:144288:19
    at Map.forEach (<anonymous>)
    at addTargetFileImports (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:144282:17)
    at getNewStatementsAndRemoveFromOldFile (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:143512:3)
    at doChange4 (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:144488:3)
    at c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:144477:77
    at _ChangeTracker.with (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:174306:5)
    at Object.getRefactorEditsToMoveToNewFile [as getEditsForAction] (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:144477:60)
    at Object.getEditsForRefactor (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:142603:31)
    at Object.getEditsForRefactor2 [as getEditsForRefactor] (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:149939:32)
    at decorator.<computed> [as getEditsForRefactor] (c:\Users\hdieterichs\.vscode-insiders\extensions\p42ai.refactor-3.0.1\node_modules\@p42\hide-typescript-refactors\build\index.js:28:36)
    at IpcIOSession.getEditsForRefactor (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:191087:49)
    at getEditsForRefactor (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:189305:43)
    at c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:191491:69
    at IpcIOSession.executeWithRequestId (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:191483:14)
    at IpcIOSession.executeCommand (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:191491:29)
    at IpcIOSession.onMessage (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:191533:51)
    at process.<anonymous> (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\tsserver.js:523:14)
    at process.emit (node:events:519:28)
    at emit (node:internal/child_process:951:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
    at Function.create (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\typescript-language-features\dist\extension.js:1:473974)
    at v.dispatchResponse (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\typescript-language-features\dist\extension.js:1:467944)
    at v.dispatchMessage (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\typescript-language-features\dist\extension.js:1:466742)
    at ChildProcess.<anonymous> (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\typescript-language-features\dist\extension.js:1:466235)
    at ChildProcess.emit (node:events:519:28)
    at emit (node:internal/child_process:951:14)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)
{
	"compilerOptions": {
		"module": "ESNext",
		"target": "ESNext",
		"moduleResolution": "Bundler",
		"jsx": "react",
		"useDefineForClassFields": false,
		"experimentalDecorators": true,
		"strictNullChecks": true,
		"strictFunctionTypes": true,
		"exactOptionalPropertyTypes": false,
		"useUnknownInCatchVariables": false,
		"strict": true,
		"sourceMap": true,
		"noEmit": true,
		"skipLibCheck": true
	},
	"include": [
		"./src/**/*",
		"./node_modules/@types/wicg-web-app-launch/index.d.ts"
	]
}

🕗 Version & Regression Information

  • This changed between versions 5.3 and 5.5.4 (VS Code's latest version)

Probably reproducible in newer and older versions within that range.

⏯ Playground Link

No response

💻 Code

import React from "react";

class MyComponent extends React.Component { // Call "Move to new file" here
    render() {
        return <div />;
    }
}

🙁 Actual behavior

The refactoring does not do anything.

🙂 Expected behavior

The refactoring should work.

Additional information about the issue

No response

@DanielRosenwasser DanielRosenwasser added Bug A bug in TypeScript Domain: Refactorings e.g. extract to constant or function, rename symbol labels Aug 27, 2024
@DanielRosenwasser DanielRosenwasser added Help Wanted You can do this Effort: Moderate Requires experience with the TypeScript codebase, but feasible. Harder than "Effort: Casual". labels Aug 27, 2024
@DanielRosenwasser DanielRosenwasser added this to the TypeScript 5.7.0 milestone Aug 27, 2024
@mujehoxe
Copy link

mujehoxe commented Sep 3, 2024

Any fixes yet?

@tmtk75
Copy link

tmtk75 commented Sep 12, 2024

Workaround

I noticed this issue yesterday.

Move to a file worked with 5.4.5 when I tried. 5.5.2 didn't.
I reverted the version of the local typescript to 5.4.5 and use it.

@hediet
Copy link
Member Author

hediet commented Sep 23, 2024

I get this quite frequently (also in non tsx code files). Because we moved to relative file imports, it is quite important that this feature works reliably, as manual "move to file" is very involved. FYI @alexdima

 ERR <semantic> TypeScript Server Error (5.6.2)
Debug Failure.
Error: Debug Failure.
    at Object.addImportFromExportedSymbol (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:155208:32)
    at c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:145116:19
    at Map.forEach (<anonymous>)
    at addTargetFileImports (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:145110:17)
    at getNewStatementsAndRemoveFromOldFile (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:144331:3)
    at doChange4 (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:145334:3)
    at c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:145323:77
    at _ChangeTracker.with (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:175532:5)
    at Object.getRefactorEditsToMoveToNewFile [as getEditsForAction] (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:145323:60)
    at Object.getEditsForRefactor (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:143422:31)
    at Object.getEditsForRefactor2 [as getEditsForRefactor] (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:150903:32)
    at IpcIOSession.getEditsForRefactor (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:192236:49)
    at getEditsForRefactor (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:190435:43)
    at c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:192655:15
    at IpcIOSession.executeWithRequestId (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:192644:14)
    at IpcIOSession.executeCommand (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:192653:29)
    at IpcIOSession.onMessage (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:192701:68)
    at process.<anonymous> (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\tsserver.js:525:14)
    at process.emit (node:events:519: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.6.2)
Debug Failure.
Error: Debug Failure.
    at Object.addImportFromExportedSymbol (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:155208:32)
    at c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:145116:19
    at Map.forEach (<anonymous>)
    at addTargetFileImports (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:145110:17)
    at getNewStatementsAndRemoveFromOldFile (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:144331:3)
    at doChange4 (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:145334:3)
    at c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:145323:77
    at _ChangeTracker.with (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:175532:5)
    at Object.getRefactorEditsToMoveToNewFile [as getEditsForAction] (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:145323:60)
    at Object.getEditsForRefactor (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:143422:31)
    at Object.getEditsForRefactor2 [as getEditsForRefactor] (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:150903:32)
    at IpcIOSession.getEditsForRefactor (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:192236:49)
    at getEditsForRefactor (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:190435:43)
    at c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:192655:15
    at IpcIOSession.executeWithRequestId (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:192644:14)
    at IpcIOSession.executeCommand (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:192653:29)
    at IpcIOSession.onMessage (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\typescript.js:192701:68)
    at process.<anonymous> (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\node_modules\typescript\lib\tsserver.js:525:14)
    at process.emit (node:events:519:28)
    at emit (node:internal/child_process:951:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:83:21)
    at Function.create (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\typescript-language-features\dist\extension.js:1:473969)
    at v.dispatchResponse (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\typescript-language-features\dist\extension.js:1:467939)
    at v.dispatchMessage (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\typescript-language-features\dist\extension.js:1:466737)
    at ChildProcess.<anonymous> (c:\Users\hdieterichs\AppData\Local\Programs\Microsoft VS Code Insiders\resources\app\extensions\typescript-language-features\dist\extension.js:1:466230)
    at ChildProcess.emit (node:events:519:28)
    at emit (node:internal/child_process:951:14)
    at processTicksAndRejections (node:internal/process/task_queues:83:21)

@CGNonofr
Copy link

If it can help, I'm able to reproduce that issue on a simple scenari as well:

test1.ts:

import Test from './test2.js'

export function test(test: Test): void {
  console.log(test)
}

test2.ts:

enum Test {
  Value = 0
}

namespace Test {
  export const value = Test.Value
}

export default Test

then tries to "move to new file" the test function from test1.ts

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug A bug in TypeScript Domain: Refactorings e.g. extract to constant or function, rename symbol Effort: Moderate Requires experience with the TypeScript codebase, but feasible. Harder than "Effort: Casual". Help Wanted You can do this
Projects
None yet
Development

Successfully merging a pull request may close this issue.

6 participants