diff --git a/src/compiler/builder.ts b/src/compiler/builder.ts index 6784485d21cac..a4f279d6b4116 100644 --- a/src/compiler/builder.ts +++ b/src/compiler/builder.ts @@ -68,7 +68,6 @@ import { Program, ProjectReference, ReadBuildProgramHost, - ReadonlyCollection, RepopulateDiagnosticChainInfo, RepopulateModuleNotFoundDiagnosticChain, returnFalse, @@ -307,8 +306,8 @@ function getPendingEmitKind( } function hasSameKeys( - map1: ReadonlyCollection | undefined, - map2: ReadonlyCollection | undefined, + map1: ReadonlyMap | ReadonlySet | undefined, + map2: ReadonlyMap | ReadonlySet | undefined, ): boolean { // Has same size and every key is present in both maps return map1 === map2 || map1 !== undefined && map2 !== undefined && map1.size === map2.size && !forEachKey(map1, key => !map2.has(key)); diff --git a/src/compiler/corePublic.ts b/src/compiler/corePublic.ts index ed4b500aaec63..291f11a71182a 100644 --- a/src/compiler/corePublic.ts +++ b/src/compiler/corePublic.ts @@ -22,17 +22,6 @@ export interface SortedArray extends Array { " __sortedArrayBrand": any; } -/** - * Common read methods for ES6 Map/Set. - * - * @internal - */ -export interface ReadonlyCollection { - readonly size: number; - has(key: K): boolean; - keys(): IterableIterator; -} - /** @internal */ export type EqualityComparer = (a: T, b: T) => boolean; diff --git a/src/compiler/utilities.ts b/src/compiler/utilities.ts index 1b972e990f7fb..20f8d6c261def 100644 --- a/src/compiler/utilities.ts +++ b/src/compiler/utilities.ts @@ -479,7 +479,6 @@ import { PunctuationSyntaxKind, QualifiedName, QuestionQuestionEqualsToken, - ReadonlyCollection, ReadonlyTextRange, removeTrailingDirectorySeparator, RequireOrImportCall, @@ -734,7 +733,7 @@ export function forEachEntry(map: ReadonlyMap, callback: (value: * * @internal */ -export function forEachKey(map: ReadonlyCollection, callback: (key: K) => T | undefined): T | undefined { +export function forEachKey(map: ReadonlyMap | ReadonlySet, callback: (key: K) => T | undefined): T | undefined { const iterator = map.keys(); for (const key of iterator) { const result = callback(key); diff --git a/src/server/editorServices.ts b/src/server/editorServices.ts index c3d16e0da5b25..df85b7c2b526b 100644 --- a/src/server/editorServices.ts +++ b/src/server/editorServices.ts @@ -99,7 +99,6 @@ import { ProjectPackageJsonInfo, ProjectReference, ReadMapFile, - ReadonlyCollection, removeFileExtension, removeIgnoredPath, removeMinAndVersionNumbers, @@ -4345,7 +4344,7 @@ export class ProjectService { } /** @internal */ - loadAncestorProjectTree(forProjects?: ReadonlyCollection) { + loadAncestorProjectTree(forProjects?: ReadonlyMap | ReadonlySet) { forProjects ??= new Set( mapDefinedIterator(this.configuredProjects.entries(), ([key, project]) => !project.isInitialLoadPending() ? key : undefined), ); @@ -4364,7 +4363,7 @@ export class ProjectService { } } - private ensureProjectChildren(project: ConfiguredProject, forProjects: ReadonlyCollection, seenProjects: Set) { + private ensureProjectChildren(project: ConfiguredProject, forProjects: ReadonlyMap | ReadonlySet, seenProjects: Set) { if (!tryAddToSet(seenProjects, project.canonicalConfigFilePath)) return; // If this project disables child load ignore it diff --git a/src/services/codefixes/convertToEsModule.ts b/src/services/codefixes/convertToEsModule.ts index 02d1a5f930114..64e75a5b68686 100644 --- a/src/services/codefixes/convertToEsModule.ts +++ b/src/services/codefixes/convertToEsModule.ts @@ -68,7 +68,6 @@ import { PropertyAccessExpression, QuotePreference, rangeContainsRange, - ReadonlyCollection, ScriptTarget, some, SourceFile, @@ -396,7 +395,7 @@ function convertReExportAll(reExported: StringLiteralLike, checker: TypeChecker) // `module.exports = require("x");` ==> `export * from "x"; export { default } from "x";` const moduleSpecifier = reExported.text; const moduleSymbol = checker.getSymbolAtLocation(reExported); - const exports = moduleSymbol ? moduleSymbol.exports! : emptyMap as ReadonlyCollection<__String>; + const exports = moduleSymbol ? moduleSymbol.exports! : emptyMap as ReadonlyMap<__String, never>; return exports.has(InternalSymbolName.ExportEquals) ? [[reExportDefault(moduleSpecifier)], true] : !exports.has(InternalSymbolName.Default) ? [[reExportStar(moduleSpecifier)], false] : // If there's some non-default export, must include both `export *` and `export default`. diff --git a/src/testRunner/unittests/helpers/baseline.ts b/src/testRunner/unittests/helpers/baseline.ts index 7f5cc3e7390cd..ff7901bd529ed 100644 --- a/src/testRunner/unittests/helpers/baseline.ts +++ b/src/testRunner/unittests/helpers/baseline.ts @@ -127,7 +127,7 @@ function baselineProgram(baseline: string[], [program, builderProgram]: CommandL baseline.push(""); } -export function generateSourceMapBaselineFiles(sys: ts.System & { writtenFiles: ts.ReadonlyCollection; }) { +export function generateSourceMapBaselineFiles(sys: ts.System & { writtenFiles: Map | Set; }) { const mapFileNames = ts.mapDefinedIterator(sys.writtenFiles.keys(), f => f.endsWith(".map") ? f : undefined); for (const mapFile of mapFileNames) { const text = Harness.SourceMapRecorder.getSourceMapRecordWithSystem(sys, mapFile);