From f83f73b8259a1c245c51012f0b326ac1db873ba1 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Thu, 21 Jun 2018 12:39:38 -0700 Subject: [PATCH 1/2] Remove deprecated API --- src/compiler/checker.ts | 140 ---------------------------------------- src/compiler/types.ts | 35 ++-------- 2 files changed, 5 insertions(+), 170 deletions(-) diff --git a/src/compiler/checker.ts b/src/compiler/checker.ts index 3867a26c02323..ce42117ce5d83 100644 --- a/src/compiler/checker.ts +++ b/src/compiler/checker.ts @@ -182,7 +182,6 @@ namespace ts { writeTypePredicate: (predicate, enclosingDeclaration, flags, writer) => { return typePredicateToString(predicate, getParseTreeNode(enclosingDeclaration), flags, writer); }, - getSymbolDisplayBuilder, // TODO (weswigham): Remove once deprecation process is complete getAugmentedPropertiesOfType, getRootSymbols, getContextualType: nodeIn => { @@ -655,145 +654,6 @@ namespace ts { return checker; - /** - * @deprecated - */ - function getSymbolDisplayBuilder(): SymbolDisplayBuilder { - return { - buildTypeDisplay(type, writer, enclosingDeclaration?, flags?) { - typeToString(type, enclosingDeclaration, flags, emitTextWriterWrapper(writer)); - }, - buildSymbolDisplay(symbol, writer, enclosingDeclaration?, meaning?, flags = SymbolFormatFlags.None) { - symbolToString(symbol, enclosingDeclaration, meaning, flags | SymbolFormatFlags.AllowAnyNodeKind, emitTextWriterWrapper(writer)); - }, - buildSignatureDisplay(signature, writer, enclosing?, flags?, kind?) { - signatureToString(signature, enclosing, flags, kind, emitTextWriterWrapper(writer)); - }, - buildIndexSignatureDisplay(info, writer, kind, enclosing?, flags?) { - const sig = nodeBuilder.indexInfoToIndexSignatureDeclaration(info, kind, enclosing, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors, writer); - const printer = createPrinter({ removeComments: true }); - printer.writeNode(EmitHint.Unspecified, sig, getSourceFileOfNode(getParseTreeNode(enclosing)), emitTextWriterWrapper(writer)); - }, - buildParameterDisplay(symbol, writer, enclosing?, flags?) { - const node = nodeBuilder.symbolToParameterDeclaration(symbol, enclosing, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors, writer); - const printer = createPrinter({ removeComments: true }); - printer.writeNode(EmitHint.Unspecified, node!, getSourceFileOfNode(getParseTreeNode(enclosing)), emitTextWriterWrapper(writer)); // TODO: GH#18217 - }, - buildTypeParameterDisplay(tp, writer, enclosing?, flags?) { - const node = nodeBuilder.typeParameterToDeclaration(tp, enclosing, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors | NodeBuilderFlags.OmitParameterModifiers, writer); - const printer = createPrinter({ removeComments: true }); - printer.writeNode(EmitHint.Unspecified, node!, getSourceFileOfNode(getParseTreeNode(enclosing)), emitTextWriterWrapper(writer)); // TODO: GH#18217 - }, - buildTypePredicateDisplay(predicate, writer, enclosing?, flags?) { - typePredicateToString(predicate, enclosing, flags, emitTextWriterWrapper(writer)); - }, - buildTypeParameterDisplayFromSymbol(symbol, writer, enclosing?, flags?) { - const nodes = nodeBuilder.symbolToTypeParameterDeclarations(symbol, enclosing, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors, writer); - const printer = createPrinter({ removeComments: true }); - printer.writeList(ListFormat.TypeParameters, nodes, getSourceFileOfNode(getParseTreeNode(enclosing)), emitTextWriterWrapper(writer)); - }, - buildDisplayForParametersAndDelimiters(thisParameter, parameters, writer, enclosing?, originalFlags?) { - const printer = createPrinter({ removeComments: true }); - const flags = NodeBuilderFlags.OmitParameterModifiers | NodeBuilderFlags.IgnoreErrors | toNodeBuilderFlags(originalFlags); - const thisParameterArray = thisParameter ? [nodeBuilder.symbolToParameterDeclaration(thisParameter, enclosing, flags)!] : []; // TODO: GH#18217 - const params = createNodeArray([...thisParameterArray, ...map(parameters, param => nodeBuilder.symbolToParameterDeclaration(param, enclosing, flags)!)]); // TODO: GH#18217 - printer.writeList(ListFormat.CallExpressionArguments, params, getSourceFileOfNode(getParseTreeNode(enclosing)), emitTextWriterWrapper(writer)); - }, - buildDisplayForTypeParametersAndDelimiters(typeParameters, writer, enclosing?, flags?) { - const printer = createPrinter({ removeComments: true }); - const args = createNodeArray(map(typeParameters, p => nodeBuilder.typeParameterToDeclaration(p, enclosing, toNodeBuilderFlags(flags))!)); // TODO: GH#18217 - printer.writeList(ListFormat.TypeParameters, args, getSourceFileOfNode(getParseTreeNode(enclosing)), emitTextWriterWrapper(writer)); - }, - buildReturnTypeDisplay(signature, writer, enclosing?, flags?) { - writer.writePunctuation(":"); - writer.writeSpace(" "); - const predicate = getTypePredicateOfSignature(signature); - if (predicate) { - return typePredicateToString(predicate, enclosing, flags, emitTextWriterWrapper(writer)); - } - const node = nodeBuilder.typeToTypeNode(getReturnTypeOfSignature(signature), enclosing, toNodeBuilderFlags(flags) | NodeBuilderFlags.IgnoreErrors, writer); - const printer = createPrinter({ removeComments: true }); - printer.writeNode(EmitHint.Unspecified, node!, getSourceFileOfNode(getParseTreeNode(enclosing)), emitTextWriterWrapper(writer)); // TODO: GH#18217 - } - }; - - function emitTextWriterWrapper(underlying: SymbolWriter): EmitTextWriter { - return { - write: noop, - writeTextOfNode: noop, - writeLine: noop, - increaseIndent() { - return underlying.increaseIndent(); - }, - decreaseIndent() { - return underlying.decreaseIndent(); - }, - getText() { - return ""; - }, - rawWrite: noop, - writeLiteral(s) { - return underlying.writeStringLiteral(s); - }, - getTextPos() { - return 0; - }, - getLine() { - return 0; - }, - getColumn() { - return 0; - }, - getIndent() { - return 0; - }, - isAtStartOfLine() { - return false; - }, - clear() { - return underlying.clear(); - }, - - writeKeyword(text) { - return underlying.writeKeyword(text); - }, - writeOperator(text) { - return underlying.writeOperator(text); - }, - writePunctuation(text) { - return underlying.writePunctuation(text); - }, - writeSpace(text) { - return underlying.writeSpace(text); - }, - writeStringLiteral(text) { - return underlying.writeStringLiteral(text); - }, - writeParameter(text) { - return underlying.writeParameter(text); - }, - writeProperty(text) { - return underlying.writeProperty(text); - }, - writeSymbol(text, symbol) { - return underlying.writeSymbol(text, symbol); - }, - trackSymbol(symbol, enclosing?, meaning?) { - return underlying.trackSymbol && underlying.trackSymbol(symbol, enclosing, meaning); - }, - reportInaccessibleThisError() { - return underlying.reportInaccessibleThisError && underlying.reportInaccessibleThisError(); - }, - reportPrivateInBaseOfClassExpression(name) { - return underlying.reportPrivateInBaseOfClassExpression && underlying.reportPrivateInBaseOfClassExpression(name); - }, - reportInaccessibleUniqueSymbolError() { - return underlying.reportInaccessibleUniqueSymbolError && underlying.reportInaccessibleUniqueSymbolError(); - } - }; - } - } - function getJsxNamespace(location: Node | undefined): __String { if (location) { const file = getSourceFileOfNode(location); diff --git a/src/compiler/types.ts b/src/compiler/types.ts index e8b957fe7048f..95ee487a308a6 100644 --- a/src/compiler/types.ts +++ b/src/compiler/types.ts @@ -2919,11 +2919,6 @@ namespace ts { /* @internal */ writeSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags, writer?: EmitTextWriter): string; /* @internal */ writeTypePredicate(predicate: TypePredicate, enclosingDeclaration?: Node, flags?: TypeFormatFlags, writer?: EmitTextWriter): string; - /** - * @deprecated Use the createX factory functions or XToY typechecker methods and `createPrinter` or the `xToString` methods instead - * This will be removed in a future version. - */ - getSymbolDisplayBuilder(): SymbolDisplayBuilder; getFullyQualifiedName(symbol: Symbol): string; getAugmentedPropertiesOfType(type: Type): Symbol[]; getRootSymbols(symbol: Symbol): Symbol[]; @@ -3174,27 +3169,9 @@ namespace ts { walkSymbol(root: Symbol): { visitedTypes: ReadonlyArray, visitedSymbols: ReadonlyArray }; } - /** - * @deprecated - */ - export interface SymbolDisplayBuilder { - /** @deprecated */ buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void; - /** @deprecated */ buildSignatureDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind): void; - /** @deprecated */ buildIndexSignatureDisplay(info: IndexInfo, writer: SymbolWriter, kind: IndexKind, enclosingDeclaration?: Node, globalFlags?: TypeFormatFlags, symbolStack?: Symbol[]): void; - /** @deprecated */ buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildTypePredicateDisplay(predicate: TypePredicate, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildDisplayForParametersAndDelimiters(thisParameter: Symbol, parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildDisplayForTypeParametersAndDelimiters(typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildReturnTypeDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - } - - /** - * @deprecated Migrate to other methods of generating symbol names, ex symbolToEntityName + a printer or symbolToString - */ - export interface SymbolWriter extends SymbolTracker { + // This was previously deprecated in our public API, but is still used internally + /* @internal */ + interface SymbolWriter extends SymbolTracker { writeKeyword(text: string): void; writeOperator(text: string): void; writePunctuation(text: string): void; @@ -5271,8 +5248,8 @@ namespace ts { getSourceFiles?(): ReadonlyArray; // Used for cached resolutions to find symlinks without traversing the fs (again) } - /** @deprecated See comment on SymbolWriter */ - // Note: this has non-deprecated internal uses. + // Note: this used to be deprecated in our public API, but is still used internally + /* @internal */ export interface SymbolTracker { // Called when the symbol writer encounters a symbol to write. Currently only used by the // declaration emitter to help determine if it should patch up the final declaration file @@ -5281,9 +5258,7 @@ namespace ts { reportInaccessibleThisError?(): void; reportPrivateInBaseOfClassExpression?(propertyName: string): void; reportInaccessibleUniqueSymbolError?(): void; - /* @internal */ moduleResolverHost?: ModuleSpecifierResolutionHost; - /* @internal */ trackReferencedAmbientModule?(decl: ModuleDeclaration): void; } From bfc7ee8868db7bee85393988628d328aabb0ed59 Mon Sep 17 00:00:00 2001 From: Wesley Wigham Date: Fri, 29 Jun 2018 18:11:50 -0700 Subject: [PATCH 2/2] Accept API baseline updates --- .../reference/api/tsserverlibrary.d.ts | 25 ----------- tests/baselines/reference/api/typescript.d.ts | 45 ------------------- 2 files changed, 70 deletions(-) diff --git a/tests/baselines/reference/api/tsserverlibrary.d.ts b/tests/baselines/reference/api/tsserverlibrary.d.ts index 4f2ddb59326e9..9d6917517c938 100644 --- a/tests/baselines/reference/api/tsserverlibrary.d.ts +++ b/tests/baselines/reference/api/tsserverlibrary.d.ts @@ -2631,11 +2631,6 @@ declare namespace ts { writeType(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags, writer?: EmitTextWriter): string; writeSymbol(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags, writer?: EmitTextWriter): string; writeTypePredicate(predicate: TypePredicate, enclosingDeclaration?: Node, flags?: TypeFormatFlags, writer?: EmitTextWriter): string; - /** - * @deprecated Use the createX factory functions or XToY typechecker methods and `createPrinter` or the `xToString` methods instead - * This will be removed in a future version. - */ - getSymbolDisplayBuilder(): SymbolDisplayBuilder; getFullyQualifiedName(symbol: Symbol): string; getAugmentedPropertiesOfType(type: Type): Symbol[]; getRootSymbols(symbol: Symbol): Symbol[]; @@ -2823,25 +2818,6 @@ declare namespace ts { visitedSymbols: ReadonlyArray; }; } - /** - * @deprecated - */ - interface SymbolDisplayBuilder { - /** @deprecated */ buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void; - /** @deprecated */ buildSignatureDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind): void; - /** @deprecated */ buildIndexSignatureDisplay(info: IndexInfo, writer: SymbolWriter, kind: IndexKind, enclosingDeclaration?: Node, globalFlags?: TypeFormatFlags, symbolStack?: Symbol[]): void; - /** @deprecated */ buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildTypePredicateDisplay(predicate: TypePredicate, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildDisplayForParametersAndDelimiters(thisParameter: Symbol, parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildDisplayForTypeParametersAndDelimiters(typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildReturnTypeDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - } - /** - * @deprecated Migrate to other methods of generating symbol names, ex symbolToEntityName + a printer or symbolToString - */ interface SymbolWriter extends SymbolTracker { writeKeyword(text: string): void; writeOperator(text: string): void; @@ -4511,7 +4487,6 @@ declare namespace ts { readFile?(path: string): string | undefined; getSourceFiles?(): ReadonlyArray; } - /** @deprecated See comment on SymbolWriter */ interface SymbolTracker { trackSymbol?(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): void; reportInaccessibleThisError?(): void; diff --git a/tests/baselines/reference/api/typescript.d.ts b/tests/baselines/reference/api/typescript.d.ts index fb2d636059dc7..99cc7989375c1 100644 --- a/tests/baselines/reference/api/typescript.d.ts +++ b/tests/baselines/reference/api/typescript.d.ts @@ -1893,11 +1893,6 @@ declare namespace ts { typeToString(type: Type, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; symbolToString(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): string; typePredicateToString(predicate: TypePredicate, enclosingDeclaration?: Node, flags?: TypeFormatFlags): string; - /** - * @deprecated Use the createX factory functions or XToY typechecker methods and `createPrinter` or the `xToString` methods instead - * This will be removed in a future version. - */ - getSymbolDisplayBuilder(): SymbolDisplayBuilder; getFullyQualifiedName(symbol: Symbol): string; getAugmentedPropertiesOfType(type: Type): Symbol[]; getRootSymbols(symbol: Symbol): Symbol[]; @@ -1996,39 +1991,6 @@ declare namespace ts { AllowAnyNodeKind = 4, UseAliasDefinedOutsideCurrentScope = 8 } - /** - * @deprecated - */ - interface SymbolDisplayBuilder { - /** @deprecated */ buildTypeDisplay(type: Type, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildSymbolDisplay(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, meaning?: SymbolFlags, flags?: SymbolFormatFlags): void; - /** @deprecated */ buildSignatureDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags, kind?: SignatureKind): void; - /** @deprecated */ buildIndexSignatureDisplay(info: IndexInfo, writer: SymbolWriter, kind: IndexKind, enclosingDeclaration?: Node, globalFlags?: TypeFormatFlags, symbolStack?: Symbol[]): void; - /** @deprecated */ buildParameterDisplay(parameter: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildTypeParameterDisplay(tp: TypeParameter, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildTypePredicateDisplay(predicate: TypePredicate, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildTypeParameterDisplayFromSymbol(symbol: Symbol, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildDisplayForParametersAndDelimiters(thisParameter: Symbol, parameters: Symbol[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildDisplayForTypeParametersAndDelimiters(typeParameters: TypeParameter[], writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - /** @deprecated */ buildReturnTypeDisplay(signature: Signature, writer: SymbolWriter, enclosingDeclaration?: Node, flags?: TypeFormatFlags): void; - } - /** - * @deprecated Migrate to other methods of generating symbol names, ex symbolToEntityName + a printer or symbolToString - */ - interface SymbolWriter extends SymbolTracker { - writeKeyword(text: string): void; - writeOperator(text: string): void; - writePunctuation(text: string): void; - writeSpace(text: string): void; - writeStringLiteral(text: string): void; - writeParameter(text: string): void; - writeProperty(text: string): void; - writeSymbol(text: string, symbol: Symbol): void; - writeLine(): void; - increaseIndent(): void; - decreaseIndent(): void; - clear(): void; - } enum TypePredicateKind { This = 0, Identifier = 1 @@ -2941,13 +2903,6 @@ declare namespace ts { directoryExists?(directoryName: string): boolean; getCurrentDirectory?(): string; } - /** @deprecated See comment on SymbolWriter */ - interface SymbolTracker { - trackSymbol?(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): void; - reportInaccessibleThisError?(): void; - reportPrivateInBaseOfClassExpression?(propertyName: string): void; - reportInaccessibleUniqueSymbolError?(): void; - } interface TextSpan { start: number; length: number;