mirror of
https://github.com/microsoft/TypeScript.git
synced 2025-11-18 17:21:48 +00:00
fix(51245): Class with parameter decorator in arrow function causes "convert to default export" refactoring failure (#51256)
* fix(51245): don't rely on parent nodes in formatting rules * check existing parent node
This commit is contained in:
@@ -732,10 +732,10 @@ namespace ts.formatting {
|
||||
}
|
||||
|
||||
function nodeIsInDecoratorContext(node: Node): boolean {
|
||||
while (isExpressionNode(node)) {
|
||||
while (node && isExpression(node)) {
|
||||
node = node.parent;
|
||||
}
|
||||
return node.kind === SyntaxKind.Decorator;
|
||||
return node && node.kind === SyntaxKind.Decorator;
|
||||
}
|
||||
|
||||
function isStartOfVariableDeclarationList(context: FormattingContext): boolean {
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
/// <reference path='fourslash.ts' />
|
||||
|
||||
// @Filename: /a.ts
|
||||
/////*a*/export const f = () => {
|
||||
//// return class C {
|
||||
//// constructor(@Foo() param: any) { }
|
||||
//// }
|
||||
////}/*b*/
|
||||
////function Foo(...args: any[]): any {}
|
||||
|
||||
goTo.select("a", "b");
|
||||
edit.applyRefactor({
|
||||
refactorName: "Convert export",
|
||||
actionName: "Convert named export to default export",
|
||||
actionDescription: "Convert named export to default export",
|
||||
newContent:
|
||||
`export default () => {
|
||||
return class C {
|
||||
constructor(@Foo() param: any) { }
|
||||
}
|
||||
}
|
||||
function Foo(...args: any[]): any {}`,
|
||||
});
|
||||
Reference in New Issue
Block a user