File tree 3 files changed +13
-11
lines changed
3 files changed +13
-11
lines changed Original file line number Diff line number Diff line change @@ -422,6 +422,7 @@ namespace ts {
422
422
423
423
let deferredNodes: Node[];
424
424
let deferredUnusedIdentifierNodes: Node[];
425
+ const seenDeferredUnusedIdentifiers = createMap<true>(); // For assertion that we don't defer the same identifier twice
425
426
426
427
let flowLoopStart = 0;
427
428
let flowLoopCount = 0;
@@ -18674,7 +18675,6 @@ namespace ts {
18674
18675
18675
18676
// The identityMapper object is used to indicate that function expressions are wildcards
18676
18677
if (checkMode === CheckMode.SkipContextSensitive && isContextSensitive(node)) {
18677
- checkNodeDeferred(node);
18678
18678
return anyFunctionType;
18679
18679
}
18680
18680
@@ -21564,6 +21564,7 @@ namespace ts {
21564
21564
21565
21565
function registerForUnusedIdentifiersCheck(node: Node) {
21566
21566
if (deferredUnusedIdentifierNodes) {
21567
+ Debug.assert(addToSeen(seenDeferredUnusedIdentifiers, getNodeId(node)), "Deferring unused identifier check twice");
21567
21568
deferredUnusedIdentifierNodes.push(node);
21568
21569
}
21569
21570
}
@@ -24573,6 +24574,7 @@ namespace ts {
24573
24574
}
24574
24575
24575
24576
deferredNodes = undefined;
24577
+ seenDeferredUnusedIdentifiers.clear();
24576
24578
deferredUnusedIdentifierNodes = undefined;
24577
24579
24578
24580
if (isExternalOrCommonJsModule(node)) {
Original file line number Diff line number Diff line change @@ -3839,6 +3839,16 @@ namespace ts {
3839
3839
export function showModuleSpecifier ( { moduleSpecifier } : ImportDeclaration ) : string {
3840
3840
return isStringLiteral ( moduleSpecifier ) ? moduleSpecifier . text : getTextOfNode ( moduleSpecifier ) ;
3841
3841
}
3842
+
3843
+ /** Add a value to a set, and return true if it wasn't already present. */
3844
+ export function addToSeen ( seen : Map < true > , key : string | number ) : boolean {
3845
+ key = String ( key ) ;
3846
+ if ( seen . has ( key ) ) {
3847
+ return false ;
3848
+ }
3849
+ seen . set ( key , true ) ;
3850
+ return true ;
3851
+ }
3842
3852
}
3843
3853
3844
3854
namespace ts {
Original file line number Diff line number Diff line change @@ -1205,16 +1205,6 @@ namespace ts {
1205
1205
} ;
1206
1206
}
1207
1207
1208
- /** Add a value to a set, and return true if it wasn't already present. */
1209
- export function addToSeen ( seen : Map < true > , key : string | number ) : boolean {
1210
- key = String ( key ) ;
1211
- if ( seen . has ( key ) ) {
1212
- return false ;
1213
- }
1214
- seen . set ( key , true ) ;
1215
- return true ;
1216
- }
1217
-
1218
1208
export function getSnapshotText ( snap : IScriptSnapshot ) : string {
1219
1209
return snap . getText ( 0 , snap . getLength ( ) ) ;
1220
1210
}
You can’t perform that action at this time.
0 commit comments