Skip to content

Commit

Permalink
Remove deprecated SymbolDisplayBuilder API (#25331)
Browse files Browse the repository at this point in the history
* Remove deprecated API

* Accept API baseline updates
  • Loading branch information
weswigham authored Jun 30, 2018
1 parent e7543d6 commit 313a0b8
Show file tree
Hide file tree
Showing 4 changed files with 5 additions and 240 deletions.
140 changes: 0 additions & 140 deletions src/compiler/checker.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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 => {
Expand Down Expand Up @@ -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);
Expand Down
35 changes: 5 additions & 30 deletions src/compiler/types.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2949,11 +2949,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[];
Expand Down Expand Up @@ -3204,27 +3199,9 @@ namespace ts {
walkSymbol(root: Symbol): { visitedTypes: ReadonlyArray<Type>, visitedSymbols: ReadonlyArray<Symbol> };
}

/**
* @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;
Expand Down Expand Up @@ -5324,8 +5301,8 @@ namespace ts {
getSourceFiles?(): ReadonlyArray<SourceFile>; // 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
Expand All @@ -5334,9 +5311,7 @@ namespace ts {
reportInaccessibleThisError?(): void;
reportPrivateInBaseOfClassExpression?(propertyName: string): void;
reportInaccessibleUniqueSymbolError?(): void;
/* @internal */
moduleResolverHost?: ModuleSpecifierResolutionHost;
/* @internal */
trackReferencedAmbientModule?(decl: ModuleDeclaration): void;
}

Expand Down
25 changes: 0 additions & 25 deletions tests/baselines/reference/api/tsserverlibrary.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -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[];
Expand Down Expand Up @@ -2823,25 +2818,6 @@ declare namespace ts {
visitedSymbols: ReadonlyArray<Symbol>;
};
}
/**
* @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;
Expand Down Expand Up @@ -4511,7 +4487,6 @@ declare namespace ts {
readFile?(path: string): string | undefined;
getSourceFiles?(): ReadonlyArray<SourceFile>;
}
/** @deprecated See comment on SymbolWriter */
interface SymbolTracker {
trackSymbol?(symbol: Symbol, enclosingDeclaration?: Node, meaning?: SymbolFlags): void;
reportInaccessibleThisError?(): void;
Expand Down
Loading

0 comments on commit 313a0b8

Please sign in to comment.