@@ -1259,35 +1259,32 @@ module ts {
1259
1259
}
1260
1260
1261
1261
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 "" ;
1267
1267
}
1268
1268
1269
1269
interface DisplayPartsSymbolWriter extends SymbolWriter {
1270
1270
displayParts ( ) : SymbolDisplayPart [ ] ;
1271
1271
}
1272
1272
1273
- var displayPartWriters : DisplayPartsSymbolWriter [ ] = [ ] ;
1273
+ var displayPartWriter = getDisplayPartWriter ( ) ;
1274
1274
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 ;
1282
1278
1279
+ resetWriter ( ) ;
1283
1280
return {
1284
1281
displayParts : ( ) => displayParts ,
1285
1282
writeKind : writeKind ,
1286
1283
writeSymbol : writeSymbol ,
1287
1284
writeLine : writeLine ,
1288
1285
increaseIndent : ( ) => { indent ++ ; } ,
1289
1286
decreaseIndent : ( ) => { indent -- ; } ,
1290
- clear : ( ) => displayParts = [ ] ,
1287
+ clear : resetWriter ,
1291
1288
trackSymbol : ( ) => { }
1292
1289
} ;
1293
1290
@@ -1312,11 +1309,12 @@ module ts {
1312
1309
displayParts . push ( lineBreakPart ( ) ) ;
1313
1310
lineStart = true ;
1314
1311
}
1315
- }
1316
1312
1317
- function releaseDisplayPartWriter ( writer : DisplayPartsSymbolWriter ) {
1318
- writer . clear ( ) ;
1319
- displayPartWriters . push ( writer ) ;
1313
+ function resetWriter ( ) {
1314
+ displayParts = [ ]
1315
+ lineStart = true ;
1316
+ indent = 0 ;
1317
+ }
1320
1318
}
1321
1319
1322
1320
function displayPart ( text : string , kind : SymbolDisplayPartKind , symbol ?: Symbol ) : SymbolDisplayPart {
@@ -1366,14 +1364,14 @@ module ts {
1366
1364
}
1367
1365
1368
1366
if ( declaration . kind !== SyntaxKind . VariableDeclaration && declaration . kind !== SyntaxKind . FunctionDeclaration ) {
1369
- return ;
1367
+ return false ;
1370
1368
}
1371
1369
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
1373
1371
for ( var parent = declaration . parent ; parent . kind !== SyntaxKind . FunctionBlock ; parent = parent . parent ) {
1374
1372
// Reached source file or module block
1375
1373
if ( parent . kind === SyntaxKind . SourceFile || parent . kind === SyntaxKind . ModuleBlock ) {
1376
- return ;
1374
+ return false ;
1377
1375
}
1378
1376
}
1379
1377
@@ -1406,10 +1404,9 @@ module ts {
1406
1404
}
1407
1405
1408
1406
function mapToDisplayParts ( writeDisplayParts : ( writer : DisplayPartsSymbolWriter ) => void ) : SymbolDisplayPart [ ] {
1409
- var displayPartWriter = getDisplayPartWriter ( ) ;
1410
1407
writeDisplayParts ( displayPartWriter ) ;
1411
1408
var result = displayPartWriter . displayParts ( ) ;
1412
- releaseDisplayPartWriter ( displayPartWriter ) ;
1409
+ displayPartWriter . clear ( ) ;
1413
1410
return result ;
1414
1411
}
1415
1412
@@ -2609,9 +2606,6 @@ module ts {
2609
2606
if ( flags & SymbolFlags . Enum ) return ScriptElementKind . enumElement ;
2610
2607
var result = getSymbolKindOfConstructorPropertyMethodAccessorFunctionOrVar ( symbol , flags ) ;
2611
2608
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 ;
2615
2609
if ( flags & SymbolFlags . TypeParameter ) return ScriptElementKind . typeParameterElement ;
2616
2610
if ( flags & SymbolFlags . EnumMember ) return ScriptElementKind . variableElement ;
2617
2611
}
@@ -4431,7 +4425,7 @@ module ts {
4431
4425
// add the parameter to the list
4432
4426
parameters . push ( {
4433
4427
name : parameter . name ,
4434
- isVariable : i == n - 1 && signature . isVariadic ,
4428
+ isVariable : i === n - 1 && signature . isVariadic ,
4435
4429
docComment : displayPartsToString ( parameter . documentation ) ,
4436
4430
minChar : start ,
4437
4431
limChar : end
0 commit comments