diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 1421c4a3749..38600b3fc14 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -171,6 +171,7 @@ namespace ts { node = getParseTreeNode(node, isExpression); return node ? getContextualType(node) : undefined; }, + isContextSensitive, getFullyQualifiedName, getResolvedSignature: (node, candidatesOutArray, theArgumentCount) => { node = getParseTreeNode(node, isCallLikeExpression); diff --git a/src/compiler/types.ts b/src/compiler/types.ts index 51465a6baf5..83d70c90122 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -2769,6 +2769,8 @@ namespace ts { getAugmentedPropertiesOfType(type: Type): Symbol[]; getRootSymbols(symbol: Symbol): Symbol[]; getContextualType(node: Expression): Type | undefined; + /* @internal */ isContextSensitive(node: Expression | MethodDeclaration | ObjectLiteralElementLike | JsxAttributeLike): boolean; + /** * returns unknownSignature in the case of an error. * @param argumentCount Apparent number of arguments, passed in case of a possibly incomplete call. This should come from an ArgumentListInfo. See `signatureHelp.ts`. diff --git a/src/harness/unittests/extractConstants.ts b/src/harness/unittests/extractConstants.ts index 61ffbd01a63..71b550cba8f 100644 --- a/src/harness/unittests/extractConstants.ts +++ b/src/harness/unittests/extractConstants.ts @@ -262,6 +262,18 @@ namespace N { // Force this test to be TS-only y = [#|this.x|]; } }`); + + // TODO (https://github.com/Microsoft/TypeScript/issues/20727): the extracted constant should have a type annotation. + testExtractConstant("extractConstant_ContextualType", ` +interface I { a: 1 | 2 | 3 } +let i: I = [#|{ a: 1 }|]; +`); + + testExtractConstant("extractConstant_ContextualType_Lambda", ` +const myObj: { member(x: number, y: string): void } = { + member: [#|(x, y) => x + y|], +} +`); }); function testExtractConstant(caption: string, text: string) { diff --git a/src/services/codefixes/importFixes.ts b/src/services/codefixes/importFixes.ts index 0dd7cf2ca25..04c1cd4b6d9 100644 --- a/src/services/codefixes/importFixes.ts +++ b/src/services/codefixes/importFixes.ts @@ -279,7 +279,7 @@ namespace ts.codefix { changeTracker.insertNodeAfter(sourceFile, lastImportDeclaration, importDecl); } else { - changeTracker.insertNodeAtTopOfFile(sourceFile, importDecl); + changeTracker.insertNodeAtTopOfFile(sourceFile, importDecl, /*blankLineBetween*/ true); } }); diff --git a/src/services/refactors/extractSymbol.ts b/src/services/refactors/extractSymbol.ts index b3c671f93c1..b7aa5ac33d1 100644 --- a/src/services/refactors/extractSymbol.ts +++ b/src/services/refactors/extractSymbol.ts @@ -1004,7 +1004,7 @@ namespace ts.refactor.extractSymbol { const localNameText = getUniqueName(isClassLike(scope) ? "newProperty" : "newLocal", file.text); const isJS = isInJavaScriptFile(scope); - const variableType = isJS + const variableType = isJS || !checker.isContextSensitive(node) ? undefined : checker.typeToTypeNode(checker.getContextualType(node), scope, NodeBuilderFlags.NoTruncation); @@ -1077,10 +1077,10 @@ namespace ts.refactor.extractSymbol { // Declare const nodeToInsertBefore = getNodeToInsertConstantBefore(node, scope); if (nodeToInsertBefore.pos === 0) { - changeTracker.insertNodeAtTopOfFile(context.file, newVariableStatement); + changeTracker.insertNodeAtTopOfFile(context.file, newVariableStatement, /*blankLineBetween*/ false); } else { - changeTracker.insertNodeBefore(context.file, nodeToInsertBefore, newVariableStatement, /*blankLineBetween*/ true); + changeTracker.insertNodeBefore(context.file, nodeToInsertBefore, newVariableStatement, /*blankLineBetween*/ false); } // Consume diff --git a/src/services/textChanges.ts b/src/services/textChanges.ts index d9c592488e2..82fe3d20f6b 100644 --- a/src/services/textChanges.ts +++ b/src/services/textChanges.ts @@ -332,11 +332,11 @@ namespace ts.textChanges { return this; } - public insertNodeAtTopOfFile(sourceFile: SourceFile, newNode: Statement): void { + public insertNodeAtTopOfFile(sourceFile: SourceFile, newNode: Statement, blankLineBetween: boolean): void { const pos = getInsertionPositionAtSourceFileTop(sourceFile); this.insertNodeAt(sourceFile, pos, newNode, { prefix: pos === 0 ? undefined : this.newLineCharacter, - suffix: isLineBreak(sourceFile.text.charCodeAt(pos)) ? this.newLineCharacter : this.newLineCharacter + this.newLineCharacter, + suffix: (isLineBreak(sourceFile.text.charCodeAt(pos)) ? "" : this.newLineCharacter) + (blankLineBetween ? this.newLineCharacter : ""), }); } diff --git a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.js b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.js index 5e994ae5050..61ef97898a9 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.js +++ b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.js @@ -7,12 +7,10 @@ const f = () => { const f = () => { const newLocal = 2 + 1; - return /*RENAME*/newLocal; }; // ==SCOPE::Extract to constant in global scope== const newLocal = 2 + 1; - const f = () => { return /*RENAME*/newLocal; }; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.ts b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.ts index 5e994ae5050..61ef97898a9 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Block.ts @@ -7,12 +7,10 @@ const f = () => { const f = () => { const newLocal = 2 + 1; - return /*RENAME*/newLocal; }; // ==SCOPE::Extract to constant in global scope== const newLocal = 2 + 1; - const f = () => { return /*RENAME*/newLocal; }; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.js b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.js index 76902f4db93..ac6de28d3c4 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.js +++ b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.js @@ -2,5 +2,4 @@ const f = () => /*[#|*/2 + 1/*|]*/; // ==SCOPE::Extract to constant in global scope== const newLocal = 2 + 1; - const f = () => /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.ts b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.ts index 76902f4db93..ac6de28d3c4 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_ArrowFunction_Expression.ts @@ -2,5 +2,4 @@ const f = () => /*[#|*/2 + 1/*|]*/; // ==SCOPE::Extract to constant in global scope== const newLocal = 2 + 1; - const f = () => /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_BlockScopeMismatch.js b/tests/baselines/reference/extractConstant/extractConstant_BlockScopeMismatch.js index 8231aa543c4..a36ead114c0 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_BlockScopeMismatch.js +++ b/tests/baselines/reference/extractConstant/extractConstant_BlockScopeMismatch.js @@ -11,7 +11,6 @@ for (let i = 0; i < 10; i++) { for (let i = 0; i < 10; i++) { for (let j = 0; j < 10; j++) { const newLocal = i + 1; - const x = /*RENAME*/newLocal; } } diff --git a/tests/baselines/reference/extractConstant/extractConstant_BlockScopeMismatch.ts b/tests/baselines/reference/extractConstant/extractConstant_BlockScopeMismatch.ts index 8231aa543c4..a36ead114c0 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_BlockScopeMismatch.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_BlockScopeMismatch.ts @@ -11,7 +11,6 @@ for (let i = 0; i < 10; i++) { for (let i = 0; i < 10; i++) { for (let j = 0; j < 10; j++) { const newLocal = i + 1; - const x = /*RENAME*/newLocal; } } diff --git a/tests/baselines/reference/extractConstant/extractConstant_BlockScopes_NoDependencies.js b/tests/baselines/reference/extractConstant/extractConstant_BlockScopes_NoDependencies.js index 4880ee263c5..c3f1552b366 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_BlockScopes_NoDependencies.js +++ b/tests/baselines/reference/extractConstant/extractConstant_BlockScopes_NoDependencies.js @@ -8,7 +8,6 @@ for (let i = 0; i < 10; i++) { for (let i = 0; i < 10; i++) { for (let j = 0; j < 10; j++) { const newLocal = 1; - let x = /*RENAME*/newLocal; } } \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_BlockScopes_NoDependencies.ts b/tests/baselines/reference/extractConstant/extractConstant_BlockScopes_NoDependencies.ts index 4880ee263c5..c3f1552b366 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_BlockScopes_NoDependencies.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_BlockScopes_NoDependencies.ts @@ -8,7 +8,6 @@ for (let i = 0; i < 10; i++) { for (let i = 0; i < 10; i++) { for (let j = 0; j < 10; j++) { const newLocal = 1; - let x = /*RENAME*/newLocal; } } \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_Class.js b/tests/baselines/reference/extractConstant/extractConstant_Class.js index 1e98f8c54d0..a4c98240d97 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_Class.js +++ b/tests/baselines/reference/extractConstant/extractConstant_Class.js @@ -4,7 +4,6 @@ class C { } // ==SCOPE::Extract to constant in global scope== const newLocal = 1; - class C { x = /*RENAME*/newLocal; } \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_Class.ts b/tests/baselines/reference/extractConstant/extractConstant_Class.ts index 2c307fc64af..9dda80d7e9d 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_Class.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_Class.ts @@ -10,7 +10,6 @@ class C { } // ==SCOPE::Extract to constant in global scope== const newLocal = 1; - class C { x = /*RENAME*/newLocal; } \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.js b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.js index fa2611caaf7..169be622d02 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.js +++ b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.js @@ -16,13 +16,11 @@ class C { M2() { } M3() { const newLocal = 1; - let x = /*RENAME*/newLocal; } } // ==SCOPE::Extract to constant in global scope== const newLocal = 1; - class C { a = 1; b = 2; diff --git a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.ts b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.ts index dc703945af7..f9927581881 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition1.ts @@ -16,7 +16,6 @@ class C { M2() { } M3() { const newLocal = 1; - let x = /*RENAME*/newLocal; } } @@ -34,7 +33,6 @@ class C { } // ==SCOPE::Extract to constant in global scope== const newLocal = 1; - class C { a = 1; b = 2; diff --git a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.js b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.js index 1bd3e03377c..f1a5e1883a1 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.js +++ b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.js @@ -16,13 +16,11 @@ class C { M2() { } M3() { const newLocal = 1; - let x = /*RENAME*/newLocal; } } // ==SCOPE::Extract to constant in global scope== const newLocal = 1; - class C { a = 1; M1() { } diff --git a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.ts b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.ts index f95efd91286..66e01362c08 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition2.ts @@ -16,7 +16,6 @@ class C { M2() { } M3() { const newLocal = 1; - let x = /*RENAME*/newLocal; } } @@ -34,7 +33,6 @@ class C { } // ==SCOPE::Extract to constant in global scope== const newLocal = 1; - class C { a = 1; M1() { } diff --git a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.js b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.js index aaa948b77f5..142cc6257ba 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.js +++ b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.js @@ -16,13 +16,11 @@ class C { M2() { } M3() { const newLocal = 1; - let x = /*RENAME*/newLocal; } } // ==SCOPE::Extract to constant in global scope== const newLocal = 1; - class C { M1() { } a = 1; diff --git a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.ts b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.ts index 10454eab67f..fc0abadb5d8 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_ClassInsertionPosition3.ts @@ -16,7 +16,6 @@ class C { M2() { } M3() { const newLocal = 1; - let x = /*RENAME*/newLocal; } } @@ -34,7 +33,6 @@ class C { } // ==SCOPE::Extract to constant in global scope== const newLocal = 1; - class C { M1() { } a = 1; diff --git a/tests/baselines/reference/extractConstant/extractConstant_ContextualType.ts b/tests/baselines/reference/extractConstant/extractConstant_ContextualType.ts new file mode 100644 index 00000000000..fcec7db3bf4 --- /dev/null +++ b/tests/baselines/reference/extractConstant/extractConstant_ContextualType.ts @@ -0,0 +1,10 @@ +// ==ORIGINAL== + +interface I { a: 1 | 2 | 3 } +let i: I = /*[#|*/{ a: 1 }/*|]*/; + +// ==SCOPE::Extract to constant in enclosing scope== + +interface I { a: 1 | 2 | 3 } +const newLocal = { a: 1 }; +let i: I = /*RENAME*/newLocal; diff --git a/tests/baselines/reference/extractConstant/extractConstant_ContextualType_Lambda.ts b/tests/baselines/reference/extractConstant/extractConstant_ContextualType_Lambda.ts new file mode 100644 index 00000000000..d5a5a55bc27 --- /dev/null +++ b/tests/baselines/reference/extractConstant/extractConstant_ContextualType_Lambda.ts @@ -0,0 +1,11 @@ +// ==ORIGINAL== + +const myObj: { member(x: number, y: string): void } = { + member: /*[#|*/(x, y) => x + y/*|]*/, +} + +// ==SCOPE::Extract to constant in enclosing scope== +const newLocal: (x: number, y: string) => void = (x, y) => x + y; +const myObj: { member(x: number, y: string): void } = { + member: /*RENAME*/newLocal, +} diff --git a/tests/baselines/reference/extractConstant/extractConstant_Directive.js b/tests/baselines/reference/extractConstant/extractConstant_Directive.js index b15099c7dd3..2e255696703 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_Directive.js +++ b/tests/baselines/reference/extractConstant/extractConstant_Directive.js @@ -9,6 +9,5 @@ const x = /*[#|*/2 + 1/*|]*/; "strict"; const newLocal = 2 + 1; - const x = /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_Directive.ts b/tests/baselines/reference/extractConstant/extractConstant_Directive.ts index b15099c7dd3..2e255696703 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_Directive.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_Directive.ts @@ -9,6 +9,5 @@ const x = /*[#|*/2 + 1/*|]*/; "strict"; const newLocal = 2 + 1; - const x = /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_ExpressionStatementInNestedScope.js b/tests/baselines/reference/extractConstant/extractConstant_ExpressionStatementInNestedScope.js index 51c2c07eed8..23cdfee8281 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_ExpressionStatementInNestedScope.js +++ b/tests/baselines/reference/extractConstant/extractConstant_ExpressionStatementInNestedScope.js @@ -16,7 +16,6 @@ function F() { let i = 0; const /*RENAME*/newLocal = i++; - function F() { } diff --git a/tests/baselines/reference/extractConstant/extractConstant_ExpressionStatementInNestedScope.ts b/tests/baselines/reference/extractConstant/extractConstant_ExpressionStatementInNestedScope.ts index 51c2c07eed8..23cdfee8281 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_ExpressionStatementInNestedScope.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_ExpressionStatementInNestedScope.ts @@ -16,7 +16,6 @@ function F() { let i = 0; const /*RENAME*/newLocal = i++; - function F() { } diff --git a/tests/baselines/reference/extractConstant/extractConstant_Function.js b/tests/baselines/reference/extractConstant/extractConstant_Function.js index 68b4f83221f..03537ae93bd 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_Function.js +++ b/tests/baselines/reference/extractConstant/extractConstant_Function.js @@ -5,12 +5,10 @@ function F() { // ==SCOPE::Extract to constant in enclosing scope== function F() { const newLocal = 1; - let x = /*RENAME*/newLocal; } // ==SCOPE::Extract to constant in global scope== const newLocal = 1; - function F() { let x = /*RENAME*/newLocal; } \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_Function.ts b/tests/baselines/reference/extractConstant/extractConstant_Function.ts index 68b4f83221f..03537ae93bd 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_Function.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_Function.ts @@ -5,12 +5,10 @@ function F() { // ==SCOPE::Extract to constant in enclosing scope== function F() { const newLocal = 1; - let x = /*RENAME*/newLocal; } // ==SCOPE::Extract to constant in global scope== const newLocal = 1; - function F() { let x = /*RENAME*/newLocal; } \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_Method.js b/tests/baselines/reference/extractConstant/extractConstant_Method.js index 95b719ade0d..c3abef1e843 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_Method.js +++ b/tests/baselines/reference/extractConstant/extractConstant_Method.js @@ -8,13 +8,11 @@ class C { class C { M() { const newLocal = 1; - let x = /*RENAME*/newLocal; } } // ==SCOPE::Extract to constant in global scope== const newLocal = 1; - class C { M() { let x = /*RENAME*/newLocal; diff --git a/tests/baselines/reference/extractConstant/extractConstant_Method.ts b/tests/baselines/reference/extractConstant/extractConstant_Method.ts index 43779492e70..e80071b6249 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_Method.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_Method.ts @@ -8,7 +8,6 @@ class C { class C { M() { const newLocal = 1; - let x = /*RENAME*/newLocal; } } @@ -22,7 +21,6 @@ class C { } // ==SCOPE::Extract to constant in global scope== const newLocal = 1; - class C { M() { let x = /*RENAME*/newLocal; diff --git a/tests/baselines/reference/extractConstant/extractConstant_MultipleHeaders.js b/tests/baselines/reference/extractConstant/extractConstant_MultipleHeaders.js index 52ea400a0f6..1bfe7b78bc5 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_MultipleHeaders.js +++ b/tests/baselines/reference/extractConstant/extractConstant_MultipleHeaders.js @@ -17,6 +17,5 @@ const x = /*[#|*/2 + 1/*|]*/; "strict"; const newLocal = 2 + 1; - const x = /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_MultipleHeaders.ts b/tests/baselines/reference/extractConstant/extractConstant_MultipleHeaders.ts index 52ea400a0f6..1bfe7b78bc5 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_MultipleHeaders.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_MultipleHeaders.ts @@ -17,6 +17,5 @@ const x = /*[#|*/2 + 1/*|]*/; "strict"; const newLocal = 2 + 1; - const x = /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_Namespace.ts b/tests/baselines/reference/extractConstant/extractConstant_Namespace.ts index c9937eb1869..28c0dc9d661 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_Namespace.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_Namespace.ts @@ -5,12 +5,10 @@ namespace N { // ==SCOPE::Extract to constant in enclosing scope== namespace N { const newLocal = 1; - let x = /*RENAME*/newLocal; } // ==SCOPE::Extract to constant in global scope== const newLocal = 1; - namespace N { let x = /*RENAME*/newLocal; } \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_Parameters.js b/tests/baselines/reference/extractConstant/extractConstant_Parameters.js index 6c657f9d5ed..df830e44083 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_Parameters.js +++ b/tests/baselines/reference/extractConstant/extractConstant_Parameters.js @@ -7,6 +7,5 @@ function F() { function F() { let w = 1; const newLocal = w + 1; - let x = /*RENAME*/newLocal; } \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_Parameters.ts b/tests/baselines/reference/extractConstant/extractConstant_Parameters.ts index 6c657f9d5ed..df830e44083 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_Parameters.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_Parameters.ts @@ -7,6 +7,5 @@ function F() { function F() { let w = 1; const newLocal = w + 1; - let x = /*RENAME*/newLocal; } \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.js b/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.js index 64620d817c6..44e5626c80a 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.js +++ b/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.js @@ -9,6 +9,5 @@ const x = /*[#|*/2 + 1/*|]*/; /*! Copyright */ const newLocal = 2 + 1; - const x = /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.ts b/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.ts index 64620d817c6..44e5626c80a 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_PinnedComment.ts @@ -9,6 +9,5 @@ const x = /*[#|*/2 + 1/*|]*/; /*! Copyright */ const newLocal = 2 + 1; - const x = /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.js b/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.js index 9a3e7322355..5cd9d41ec4c 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.js +++ b/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.js @@ -10,7 +10,6 @@ const x = /*[#|*/2 + 1/*|]*/; /*! Copyright */ const newLocal = 2 + 1; - /* About x */ const x = /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.ts b/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.ts index 9a3e7322355..5cd9d41ec4c 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_PinnedCommentAndDocComment.ts @@ -10,7 +10,6 @@ const x = /*[#|*/2 + 1/*|]*/; /*! Copyright */ const newLocal = 2 + 1; - /* About x */ const x = /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.js b/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.js index 22abb77901d..9336cec58ec 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.js +++ b/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.js @@ -10,7 +10,6 @@ var q = /*b*/ //c const newLocal = 1 /*e*/ //f /*g*/ + /*h*/ //i /*j*/ 2; - // a var q = /*b*/ //c /*d*/ /*RENAME*/newLocal /*k*/ //l diff --git a/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.ts b/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.ts index 22abb77901d..9336cec58ec 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_PreserveTrivia.ts @@ -10,7 +10,6 @@ var q = /*b*/ //c const newLocal = 1 /*e*/ //f /*g*/ + /*h*/ //i /*j*/ 2; - // a var q = /*b*/ //c /*d*/ /*RENAME*/newLocal /*k*/ //l diff --git a/tests/baselines/reference/extractConstant/extractConstant_RepeatedSubstitution.ts b/tests/baselines/reference/extractConstant/extractConstant_RepeatedSubstitution.ts index 165852813f0..8328a2fdce6 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_RepeatedSubstitution.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_RepeatedSubstitution.ts @@ -7,12 +7,10 @@ namespace X { namespace X { export const j = 10; const newLocal = j * j; - export const y = /*RENAME*/newLocal; } // ==SCOPE::Extract to constant in global scope== const newLocal = X.j * X.j; - namespace X { export const j = 10; export const y = /*RENAME*/newLocal; diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition1.js b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition1.js index 618407155ee..04239744616 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition1.js +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition1.js @@ -10,7 +10,6 @@ for (let j = 0; j < 10; j++) { const i = 0; for (let j = 0; j < 10; j++) { const newLocal = i + 1; - const x = /*RENAME*/newLocal; } \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition1.ts b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition1.ts index 618407155ee..04239744616 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition1.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition1.ts @@ -10,7 +10,6 @@ for (let j = 0; j < 10; j++) { const i = 0; for (let j = 0; j < 10; j++) { const newLocal = i + 1; - const x = /*RENAME*/newLocal; } \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition2.js b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition2.js index 5d279a42aa1..6480c294c51 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition2.js +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition2.js @@ -13,7 +13,6 @@ const i = 0; function F() { for (let j = 0; j < 10; j++) { const newLocal = i + 1; - const x = /*RENAME*/newLocal; } } @@ -22,7 +21,6 @@ function F() { const i = 0; const newLocal = i + 1; - function F() { for (let j = 0; j < 10; j++) { const x = /*RENAME*/newLocal; diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition2.ts b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition2.ts index 5d279a42aa1..6480c294c51 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition2.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition2.ts @@ -13,7 +13,6 @@ const i = 0; function F() { for (let j = 0; j < 10; j++) { const newLocal = i + 1; - const x = /*RENAME*/newLocal; } } @@ -22,7 +21,6 @@ function F() { const i = 0; const newLocal = i + 1; - function F() { for (let j = 0; j < 10; j++) { const x = /*RENAME*/newLocal; diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition3.js b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition3.js index bf970bf4ec7..ea8aaefd737 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition3.js +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition3.js @@ -8,7 +8,6 @@ for (let j = 0; j < 10; j++) { for (let j = 0; j < 10; j++) { const newLocal = 2 + 1; - const x = /*RENAME*/newLocal; } \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition3.ts b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition3.ts index bf970bf4ec7..ea8aaefd737 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition3.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition3.ts @@ -8,7 +8,6 @@ for (let j = 0; j < 10; j++) { for (let j = 0; j < 10; j++) { const newLocal = 2 + 1; - const x = /*RENAME*/newLocal; } \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.js b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.js index b8eeb8cdfa5..fdf32195aae 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.js +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.js @@ -11,14 +11,12 @@ function F() { function F() { for (let j = 0; j < 10; j++) { const newLocal = 2 + 1; - const x = /*RENAME*/newLocal; } } // ==SCOPE::Extract to constant in global scope== const newLocal = 2 + 1; - function F() { for (let j = 0; j < 10; j++) { const x = /*RENAME*/newLocal; diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.ts b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.ts index b8eeb8cdfa5..fdf32195aae 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition4.ts @@ -11,14 +11,12 @@ function F() { function F() { for (let j = 0; j < 10; j++) { const newLocal = 2 + 1; - const x = /*RENAME*/newLocal; } } // ==SCOPE::Extract to constant in global scope== const newLocal = 2 + 1; - function F() { for (let j = 0; j < 10; j++) { const x = /*RENAME*/newLocal; diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.js b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.js index 9ecdbd05502..55617b56a3c 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.js +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.js @@ -12,7 +12,6 @@ function F0() { function F0() { function F1() { const newLocal = 2 + 1; - function F2(x = /*RENAME*/newLocal) { } } @@ -22,7 +21,6 @@ function F0() { function F0() { const newLocal = 2 + 1; - function F1() { function F2(x = /*RENAME*/newLocal) { } @@ -31,7 +29,6 @@ function F0() { // ==SCOPE::Extract to constant in global scope== const newLocal = 2 + 1; - function F0() { function F1() { function F2(x = /*RENAME*/newLocal) { diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.ts b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.ts index 9ecdbd05502..55617b56a3c 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition5.ts @@ -12,7 +12,6 @@ function F0() { function F0() { function F1() { const newLocal = 2 + 1; - function F2(x = /*RENAME*/newLocal) { } } @@ -22,7 +21,6 @@ function F0() { function F0() { const newLocal = 2 + 1; - function F1() { function F2(x = /*RENAME*/newLocal) { } @@ -31,7 +29,6 @@ function F0() { // ==SCOPE::Extract to constant in global scope== const newLocal = 2 + 1; - function F0() { function F1() { function F2(x = /*RENAME*/newLocal) { diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.js b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.js index b39af4525a1..3438d8bd832 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.js +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.js @@ -6,7 +6,6 @@ class C { // ==SCOPE::Extract to constant in global scope== const newLocal = 2 + 1; - class C { x = /*RENAME*/newLocal; } diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.ts b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.ts index 82d48157720..7c560ece5b0 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition6.ts @@ -14,7 +14,6 @@ class C { // ==SCOPE::Extract to constant in global scope== const newLocal = 2 + 1; - class C { x = /*RENAME*/newLocal; } diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition7.js b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition7.js index 0eb1d12fd48..524ee8f4cf7 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition7.js +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition7.js @@ -16,7 +16,6 @@ class C { M() { for (let j = 0; j < 10; j++) { const newLocal = i + 1; - x = /*RENAME*/newLocal; } } @@ -26,7 +25,6 @@ class C { const i = 0; const newLocal = i + 1; - class C { M() { for (let j = 0; j < 10; j++) { diff --git a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition7.ts b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition7.ts index 42651d6340b..2ebc01938ac 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition7.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_StatementInsertionPosition7.ts @@ -15,8 +15,7 @@ const i = 0; class C { M() { for (let j = 0; j < 10; j++) { - const newLocal: any = i + 1; - + const newLocal = i + 1; x = /*RENAME*/newLocal; } } @@ -26,7 +25,7 @@ class C { const i = 0; class C { - private readonly newProperty: any = i + 1; + private readonly newProperty = i + 1; M() { for (let j = 0; j < 10; j++) { @@ -38,8 +37,7 @@ class C { // ==SCOPE::Extract to constant in global scope== const i = 0; -const newLocal: any = i + 1; - +const newLocal = i + 1; class C { M() { for (let j = 0; j < 10; j++) { diff --git a/tests/baselines/reference/extractConstant/extractConstant_TopLevel.js b/tests/baselines/reference/extractConstant/extractConstant_TopLevel.js index a6eeb89b7e9..1e5ecf90ad6 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_TopLevel.js +++ b/tests/baselines/reference/extractConstant/extractConstant_TopLevel.js @@ -2,5 +2,4 @@ let x = /*[#|*/1/*|]*/; // ==SCOPE::Extract to constant in enclosing scope== const newLocal = 1; - let x = /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_TopLevel.ts b/tests/baselines/reference/extractConstant/extractConstant_TopLevel.ts index a6eeb89b7e9..1e5ecf90ad6 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_TopLevel.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_TopLevel.ts @@ -2,5 +2,4 @@ let x = /*[#|*/1/*|]*/; // ==SCOPE::Extract to constant in enclosing scope== const newLocal = 1; - let x = /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.js b/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.js index 5479d022a01..9e7821f6cdb 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.js +++ b/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.js @@ -9,6 +9,5 @@ const x = /*[#|*/2 + 1/*|]*/; /// const newLocal = 2 + 1; - const x = /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.ts b/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.ts index 5479d022a01..9e7821f6cdb 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_TripleSlash.ts @@ -9,6 +9,5 @@ const x = /*[#|*/2 + 1/*|]*/; /// const newLocal = 2 + 1; - const x = /*RENAME*/newLocal; \ No newline at end of file diff --git a/tests/baselines/reference/extractConstant/extractConstant_TypeParameters.ts b/tests/baselines/reference/extractConstant/extractConstant_TypeParameters.ts index 8e6ff785278..217e4f4ab58 100644 --- a/tests/baselines/reference/extractConstant/extractConstant_TypeParameters.ts +++ b/tests/baselines/reference/extractConstant/extractConstant_TypeParameters.ts @@ -5,6 +5,5 @@ function F(t: T) { // ==SCOPE::Extract to constant in enclosing scope== function F(t: T) { const newLocal = t + 1; - let x = /*RENAME*/newLocal; } \ No newline at end of file diff --git a/tests/cases/fourslash/extract-const1.ts b/tests/cases/fourslash/extract-const1.ts index 3ed9373f2ba..595e56a7e1d 100644 --- a/tests/cases/fourslash/extract-const1.ts +++ b/tests/cases/fourslash/extract-const1.ts @@ -9,6 +9,5 @@ edit.applyRefactor({ actionDescription: "Extract to constant in enclosing scope", newContent: `const newLocal = 0; - const x = /*RENAME*/newLocal;` });