@@ -121,14 +121,6 @@ namespace ts {
121
121
const buckets = createMap < Map < DocumentRegistryEntry > > ( ) ;
122
122
const getCanonicalFileName = createGetCanonicalFileName ( ! ! useCaseSensitiveFileNames ) ;
123
123
124
- function getBucketForCompilationSettings ( key : DocumentRegistryBucketKey , createIfMissing : boolean ) : Map < DocumentRegistryEntry > {
125
- let bucket = buckets . get ( key ) ;
126
- if ( ! bucket && createIfMissing ) {
127
- buckets . set ( key , bucket = createMap < DocumentRegistryEntry > ( ) ) ;
128
- }
129
- return bucket ! ; // TODO: GH#18217
130
- }
131
-
132
124
function reportStats ( ) {
133
125
const bucketInfoArray = arrayFrom ( buckets . keys ( ) ) . filter ( name => name && name . charAt ( 0 ) === "_" ) . map ( name => {
134
126
const entries = buckets . get ( name ) ! ;
@@ -178,7 +170,7 @@ namespace ts {
178
170
acquiring : boolean ,
179
171
scriptKind ?: ScriptKind ) : SourceFile {
180
172
181
- const bucket = getBucketForCompilationSettings ( key , /*createIfMissing*/ true ) ;
173
+ const bucket = getOrUpdate < Map < DocumentRegistryEntry > > ( buckets , key , createMap ) ;
182
174
let entry = bucket . get ( path ) ;
183
175
const scriptTarget = scriptKind === ScriptKind . JSON ? ScriptTarget . JSON : compilationSettings . target || ScriptTarget . ES5 ;
184
176
if ( ! entry && externalCache ) {
@@ -238,9 +230,7 @@ namespace ts {
238
230
}
239
231
240
232
function releaseDocumentWithKey ( path : Path , key : DocumentRegistryBucketKey ) : void {
241
- const bucket = getBucketForCompilationSettings ( key , /*createIfMissing*/ false ) ;
242
- Debug . assert ( bucket !== undefined ) ;
243
-
233
+ const bucket = Debug . assertDefined ( buckets . get ( key ) ) ;
244
234
const entry = bucket . get ( path ) ! ;
245
235
entry . languageServiceRefCount -- ;
246
236
0 commit comments