Skip to content

Commit 53e4040

Browse files
author
Andy
authored
Remove duplicate emptyArrays (microsoft#17305)
1 parent 25454de commit 53e4040

4 files changed

Lines changed: 11 additions & 14 deletions

File tree

src/compiler/checker.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23552,7 +23552,7 @@ namespace ts {
2355223552
}
2355323553

2355423554
// Initialize global symbol table
23555-
let augmentations: LiteralExpression[][];
23555+
let augmentations: ReadonlyArray<StringLiteral>[];
2355623556
for (const file of host.getSourceFiles()) {
2355723557
if (!isExternalOrCommonJsModule(file)) {
2355823558
mergeSymbolTable(globals, file.locals);

src/compiler/program.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
/// <reference path="core.ts" />
44

55
namespace ts {
6-
const emptyArray: any[] = [];
76
const ignoreDiagnosticCommentRegEx = /(^\s*$)|(^\s*\/\/\/?\s*(@ts-ignore)?)/;
87

98
export function findConfigFile(searchPath: string, fileExists: (fileName: string) => boolean, configName = "tsconfig.json"): string {
@@ -1390,8 +1389,8 @@ namespace ts {
13901389
const isExternalModuleFile = isExternalModule(file);
13911390

13921391
// file.imports may not be undefined if there exists dynamic import
1393-
let imports: LiteralExpression[];
1394-
let moduleAugmentations: LiteralExpression[];
1392+
let imports: StringLiteral[];
1393+
let moduleAugmentations: StringLiteral[];
13951394
let ambientModules: string[];
13961395

13971396
// If we are importing helpers, we need to add a synthetic reference to resolve the
@@ -1426,23 +1425,23 @@ namespace ts {
14261425
case SyntaxKind.ImportEqualsDeclaration:
14271426
case SyntaxKind.ExportDeclaration:
14281427
const moduleNameExpr = getExternalModuleName(node);
1429-
if (!moduleNameExpr || moduleNameExpr.kind !== SyntaxKind.StringLiteral) {
1428+
if (!moduleNameExpr || !isStringLiteral(moduleNameExpr)) {
14301429
break;
14311430
}
1432-
if (!(<LiteralExpression>moduleNameExpr).text) {
1431+
if (!moduleNameExpr.text) {
14331432
break;
14341433
}
14351434

14361435
// TypeScript 1.0 spec (April 2014): 12.1.6
14371436
// An ExternalImportDeclaration in an AmbientExternalModuleDeclaration may reference other external modules
14381437
// only through top - level external module names. Relative external module names are not permitted.
1439-
if (!inAmbientModule || !isExternalModuleNameRelative((<LiteralExpression>moduleNameExpr).text)) {
1440-
(imports || (imports = [])).push(<LiteralExpression>moduleNameExpr);
1438+
if (!inAmbientModule || !isExternalModuleNameRelative(moduleNameExpr.text)) {
1439+
(imports || (imports = [])).push(moduleNameExpr);
14411440
}
14421441
break;
14431442
case SyntaxKind.ModuleDeclaration:
14441443
if (isAmbientModule(<ModuleDeclaration>node) && (inAmbientModule || hasModifier(node, ModifierFlags.Ambient) || file.isDeclarationFile)) {
1445-
const moduleName = <LiteralExpression>(<ModuleDeclaration>node).name;
1444+
const moduleName = <StringLiteral>(<ModuleDeclaration>node).name;
14461445
// Ambient module declarations can be interpreted as augmentations for some existing external modules.
14471446
// This will happen in two cases:
14481447
// - if current file is external module then module augmentation is a ambient module declaration defined in the top level scope

src/compiler/types.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2321,10 +2321,10 @@ namespace ts {
23212321
// Content of this field should never be used directly - use getResolvedModuleFileName/setResolvedModuleFileName functions instead
23222322
/* @internal */ resolvedModules: Map<ResolvedModuleFull>;
23232323
/* @internal */ resolvedTypeReferenceDirectiveNames: Map<ResolvedTypeReferenceDirective>;
2324-
/* @internal */ imports: StringLiteral[];
2325-
/* @internal */ moduleAugmentations: StringLiteral[];
2324+
/* @internal */ imports: ReadonlyArray<StringLiteral>;
2325+
/* @internal */ moduleAugmentations: ReadonlyArray<StringLiteral>;
23262326
/* @internal */ patternAmbientModules?: PatternAmbientModule[];
2327-
/* @internal */ ambientModuleNames: string[];
2327+
/* @internal */ ambientModuleNames: ReadonlyArray<string>;
23282328
/* @internal */ checkJsDirective: CheckJsDirective | undefined;
23292329
}
23302330

src/services/signatureHelp.ts

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
///<reference path='services.ts' />
22
/* @internal */
33
namespace ts.SignatureHelp {
4-
const emptyArray: any[] = [];
5-
64
export const enum ArgumentListKind {
75
TypeArguments,
86
CallArguments,

0 commit comments

Comments
 (0)