mirror of
https://github.com/microsoft/TypeScript.git
synced 2026-02-06 02:33:53 -06:00
Merge pull request #33469 from amcasey/gh33332
Make extractSymbol explicitly drop JSDoc nodes
This commit is contained in:
commit
2f8832cccc
@ -975,6 +975,8 @@ namespace ts {
|
||||
return getSpanOfTokenAtPosition(sourceFile, node.pos);
|
||||
}
|
||||
|
||||
Debug.assert(!isJSDoc(errorNode));
|
||||
|
||||
const isMissing = nodeIsMissing(errorNode);
|
||||
const pos = isMissing || isJsxText(node)
|
||||
? errorNode.pos
|
||||
|
||||
@ -116,6 +116,7 @@ namespace ts.refactor.extractSymbol {
|
||||
export const cannotExtractRange: DiagnosticMessage = createMessage("Cannot extract range.");
|
||||
export const cannotExtractImport: DiagnosticMessage = createMessage("Cannot extract import statement.");
|
||||
export const cannotExtractSuper: DiagnosticMessage = createMessage("Cannot extract super call.");
|
||||
export const cannotExtractJSDoc: DiagnosticMessage = createMessage("Cannot extract JSDoc.");
|
||||
export const cannotExtractEmpty: DiagnosticMessage = createMessage("Cannot extract empty range.");
|
||||
export const expressionExpected: DiagnosticMessage = createMessage("expression expected.");
|
||||
export const uselessConstantType: DiagnosticMessage = createMessage("No reason to extract constant of type.");
|
||||
@ -246,6 +247,10 @@ namespace ts.refactor.extractSymbol {
|
||||
return { targetRange: { range: statements, facts: rangeFacts, declarations } };
|
||||
}
|
||||
|
||||
if (isJSDoc(start)) {
|
||||
return { errors: [createFileDiagnostic(sourceFile, span.start, length, Messages.cannotExtractJSDoc)] };
|
||||
}
|
||||
|
||||
if (isReturnStatement(start) && !start.expression) {
|
||||
// Makes no sense to extract an expression-less return statement.
|
||||
return { errors: [createFileDiagnostic(sourceFile, span.start, length, Messages.cannotExtractRange)] };
|
||||
|
||||
@ -380,6 +380,10 @@ switch (x) {
|
||||
`[#|{ 1;|] }`,
|
||||
[refactor.extractSymbol.Messages.cannotExtractRange.message]);
|
||||
|
||||
testExtractRangeFailed("extractRangeFailed19",
|
||||
`[#|/** @type {number} */|] const foo = 1;`,
|
||||
[refactor.extractSymbol.Messages.cannotExtractJSDoc.message]);
|
||||
|
||||
testExtractRangeFailed("extract-method-not-for-token-expression-statement", `[#|a|]`, [refactor.extractSymbol.Messages.cannotExtractIdentifier.message]);
|
||||
});
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user