remove trivia
This commit is contained in:
parent
2958649a95
commit
43e01f282b
4 changed files with 31 additions and 42 deletions
|
@ -2208,13 +2208,13 @@ namespace ts {
|
|||
const parameterDeclaration = parameterSymbol.declarations[0] as ParameterDeclaration;
|
||||
const parameterType = getTypeOfSymbol(parameterSymbol);
|
||||
const parameterTypeNode = typeToTypeNode(parameterType, enclosingDeclaration);
|
||||
// TODO: how should we clone members/modifiers?
|
||||
// TODO: check initializer accessibility correctly.
|
||||
const parameterNode = createParameter(
|
||||
parameterDeclaration.decorators,
|
||||
parameterDeclaration.modifiers,
|
||||
parameterDeclaration.dotDotDotToken && createToken(SyntaxKind.DotDotDotToken),
|
||||
parameterDeclaration.name,
|
||||
// Clone name to remove trivia.
|
||||
getSynthesizedClone(parameterDeclaration.name),
|
||||
parameterDeclaration.questionToken && createToken(SyntaxKind.QuestionToken),
|
||||
parameterTypeNode,
|
||||
parameterDeclaration.initializer);
|
||||
|
|
|
@ -62,7 +62,8 @@ namespace ts.codefix {
|
|||
}
|
||||
|
||||
const declaration = declarations[0] as Declaration;
|
||||
const name = <PropertyName>declaration.name;
|
||||
// Clone name to remove leading trivia.
|
||||
const name = getSynthesizedClone(<PropertyName>declaration.name);
|
||||
const visibilityModifier = createVisibilityModifier(getModifierFlags(declaration));
|
||||
const modifiers = visibilityModifier ? createNodeArray([visibilityModifier]) : undefined;
|
||||
const type = checker.getWidenedType(checker.getTypeOfSymbolAtLocation(symbol, enclosingDeclaration));
|
||||
|
@ -227,4 +228,12 @@ namespace ts.codefix {
|
|||
}
|
||||
return undefined;
|
||||
}
|
||||
|
||||
function stripComments(node: Node): Node {
|
||||
if(node === undefined) {
|
||||
return node;
|
||||
}
|
||||
const strippedChildren = visitEachChild(node, stripComments, nullTransformationContext);
|
||||
return strippedChildren === node ? getSynthesizedClone(strippedChildren) : strippedChildren;
|
||||
}
|
||||
}
|
|
@ -1,33 +0,0 @@
|
|||
/// <reference path='fourslash.ts' />
|
||||
|
||||
class A {
|
||||
foo() {
|
||||
return class { x: number; }
|
||||
}
|
||||
bar() {
|
||||
return new class { x: number; }
|
||||
}
|
||||
}
|
||||
class B<X> {
|
||||
foo() {
|
||||
return class {
|
||||
x: X;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
class D extends A { }
|
||||
|
||||
verify.rangeAfterCodeFix(`
|
||||
f(a: number, b: string): boolean;
|
||||
f(a: number, b: string): this;
|
||||
f(a: string, b: number): Function;
|
||||
f(a: string): Function;
|
||||
f(a: any, b?: any) {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
foo(): number {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
`);
|
|
@ -2,13 +2,26 @@
|
|||
|
||||
// @lib: es2017
|
||||
|
||||
//// /** interface prefix */
|
||||
//// interface /**interface name prefix */ I /**open-brace prefix*/{
|
||||
//// /** property prefix*/ x /**colon prefix*/: /**number prefix*/ number;
|
||||
////
|
||||
//// namespace N {
|
||||
//// /**enum prefix */
|
||||
//// export enum /**enum identifier prefix */ E /**open-brace prefix*/ {
|
||||
//// /* literal prefix */ a /** comma prefix */,
|
||||
//// /* literal prefix */ b /** comma prefix */,
|
||||
//// /* literal prefix */ c
|
||||
//// /** close brace prefix */ }
|
||||
//// /** interface prefix */
|
||||
//// export interface /**interface name prefix */ I /**open-brace prefix*/ {
|
||||
//// /** property prefix */ a /** colon prefix */: /** enum literal prefix 1*/ E /** dot prefix */. /** enum literal prefix 2*/a;
|
||||
//// /** property prefix */ b /** colon prefix */: /** enum prefix */ E;
|
||||
//// /**method signature prefix */foo /**open angle prefix */< /**type parameter name prefix */ X /** closing angle prefix */> /**open paren prefix */(/** parameter prefix */ a/** colon prefix */: /** parameter type prefix */ X /** close paren prefix */) /** colon prefix */: /** return type prefix */ string /** semicolon prefix */;
|
||||
//// /**close-brace prefix*/ }
|
||||
//// /**close-brace prefix*/ }
|
||||
//// class C implements I {[| |]}
|
||||
//// class C implements N.I {[| |]}
|
||||
|
||||
verify.rangeAfterCodeFix(`
|
||||
x: number;
|
||||
a: N.E.a;
|
||||
b: N.E;
|
||||
foo<X>(a: X): string {
|
||||
throw new Error("Method not implemented.");
|
||||
}
|
||||
`);
|
||||
|
|
Loading…
Reference in a new issue