Skip to content

Commit d4e58b2

Browse files
committed
Code Review feedback
1 parent 05d428a commit d4e58b2

File tree

2 files changed

+24
-30
lines changed

2 files changed

+24
-30
lines changed

src/harness/fourslash.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -657,7 +657,7 @@ module FourSlash {
657657

658658
assert.equal(ts.displayPartsToString(details.displayParts), expectedText, assertionMessage("completion entry details text"));
659659

660-
if (expectedDocumentation != undefined) {
660+
if (expectedDocumentation !== undefined) {
661661
assert.equal(ts.displayPartsToString(details.documentation), expectedDocumentation, assertionMessage("completion entry documentation"));
662662
}
663663

@@ -1971,11 +1971,11 @@ module FourSlash {
19711971

19721972
for (var i = 0; i < items.length; i++) {
19731973
var item = items[i];
1974-
if (item.name == name) {
1974+
if (item.name === name) {
19751975
if (documentation != undefined || text !== undefined) {
19761976
var details = this.getCompletionEntryDetails(item.name);
19771977

1978-
if (documentation != undefined) {
1978+
if (documentation !== undefined) {
19791979
assert.equal(ts.displayPartsToString(details.documentation), documentation, assertionMessage("completion item documentation"));
19801980
}
19811981
if (text !== undefined) {

src/services/services.ts

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1259,35 +1259,32 @@ module ts {
12591259
}
12601260

12611261
export function displayPartsToString(displayParts: SymbolDisplayPart[]) {
1262-
var result = "";
1263-
ts.forEach(displayParts, displayPart => {
1264-
result += displayPart.text;
1265-
});
1266-
return result;
1262+
if (displayParts) {
1263+
return map(displayParts, displayPart => displayPart.text).join("");
1264+
}
1265+
1266+
return "";
12671267
}
12681268

12691269
interface DisplayPartsSymbolWriter extends SymbolWriter {
12701270
displayParts(): SymbolDisplayPart[];
12711271
}
12721272

1273-
var displayPartWriters: DisplayPartsSymbolWriter[] = [];
1273+
var displayPartWriter = getDisplayPartWriter();
12741274
function getDisplayPartWriter(): DisplayPartsSymbolWriter {
1275-
if (displayPartWriters.length !== 0) {
1276-
return displayPartWriters.pop();
1277-
}
1278-
1279-
var displayParts: SymbolDisplayPart[] = [];
1280-
var lineStart = true;
1281-
var indent = 0;
1275+
var displayParts: SymbolDisplayPart[];
1276+
var lineStart: boolean;
1277+
var indent: number;
12821278

1279+
resetWriter();
12831280
return {
12841281
displayParts: () => displayParts,
12851282
writeKind: writeKind,
12861283
writeSymbol: writeSymbol,
12871284
writeLine: writeLine,
12881285
increaseIndent: () => { indent++; },
12891286
decreaseIndent: () => { indent--; },
1290-
clear: () => displayParts = [],
1287+
clear: resetWriter,
12911288
trackSymbol: () => { }
12921289
};
12931290

@@ -1312,11 +1309,12 @@ module ts {
13121309
displayParts.push(lineBreakPart());
13131310
lineStart = true;
13141311
}
1315-
}
13161312

1317-
function releaseDisplayPartWriter(writer: DisplayPartsSymbolWriter) {
1318-
writer.clear();
1319-
displayPartWriters.push(writer);
1313+
function resetWriter() {
1314+
displayParts = []
1315+
lineStart = true;
1316+
indent = 0;
1317+
}
13201318
}
13211319

13221320
function displayPart(text: string, kind: SymbolDisplayPartKind, symbol?: Symbol): SymbolDisplayPart {
@@ -1366,14 +1364,14 @@ module ts {
13661364
}
13671365

13681366
if (declaration.kind !== SyntaxKind.VariableDeclaration && declaration.kind !== SyntaxKind.FunctionDeclaration) {
1369-
return;
1367+
return false;
13701368
}
13711369

1372-
// If the parent is not sourceFile or module element it is local variable
1370+
// If the parent is not sourceFile or module block it is local variable
13731371
for (var parent = declaration.parent; parent.kind !== SyntaxKind.FunctionBlock; parent = parent.parent) {
13741372
// Reached source file or module block
13751373
if (parent.kind === SyntaxKind.SourceFile || parent.kind === SyntaxKind.ModuleBlock) {
1376-
return;
1374+
return false;
13771375
}
13781376
}
13791377

@@ -1406,10 +1404,9 @@ module ts {
14061404
}
14071405

14081406
function mapToDisplayParts(writeDisplayParts: (writer: DisplayPartsSymbolWriter) => void): SymbolDisplayPart[] {
1409-
var displayPartWriter = getDisplayPartWriter();
14101407
writeDisplayParts(displayPartWriter);
14111408
var result = displayPartWriter.displayParts();
1412-
releaseDisplayPartWriter(displayPartWriter);
1409+
displayPartWriter.clear();
14131410
return result;
14141411
}
14151412

@@ -2609,9 +2606,6 @@ module ts {
26092606
if (flags & SymbolFlags.Enum) return ScriptElementKind.enumElement;
26102607
var result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar(symbol, flags);
26112608
if (result === ScriptElementKind.unknown) {
2612-
if (flags & SymbolFlags.IndexSignature) return ScriptElementKind.indexSignatureElement;
2613-
if (flags & SymbolFlags.ConstructSignature) return ScriptElementKind.constructSignatureElement;
2614-
if (flags & SymbolFlags.CallSignature) return ScriptElementKind.callSignatureElement;
26152609
if (flags & SymbolFlags.TypeParameter) return ScriptElementKind.typeParameterElement;
26162610
if (flags & SymbolFlags.EnumMember) return ScriptElementKind.variableElement;
26172611
}
@@ -4431,7 +4425,7 @@ module ts {
44314425
// add the parameter to the list
44324426
parameters.push({
44334427
name: parameter.name,
4434-
isVariable: i == n - 1 && signature.isVariadic,
4428+
isVariable: i === n - 1 && signature.isVariadic,
44354429
docComment: displayPartsToString(parameter.documentation),
44364430
minChar: start,
44374431
limChar: end

0 commit comments

Comments
 (0)