@@ -1259,7 +1259,8 @@ module ts {
1259
1259
// this checker is used to answer all LS questions except errors
1260
1260
var typeInfoResolver : TypeChecker ;
1261
1261
// the sole purpose of this checkes is to reutrn semantic diagnostics
1262
- var fullTypeCheckChecker : TypeChecker ;
1262
+ // creation is deferred - use getFullTypeCheckChecker to get instance
1263
+ var fullTypeCheckChecker_doNotAccessDirectly : TypeChecker ;
1263
1264
var useCaseSensitivefilenames = false ;
1264
1265
var sourceFilesByName : Map < SourceFile > = { } ;
1265
1266
var documentRegistry = documentRegistry ;
@@ -1275,6 +1276,10 @@ module ts {
1275
1276
return lookUp ( sourceFilesByName , filename ) ;
1276
1277
}
1277
1278
1279
+ function getFullTypeCheckChecker ( ) {
1280
+ return fullTypeCheckChecker_doNotAccessDirectly || ( fullTypeCheckChecker_doNotAccessDirectly = program . getTypeChecker ( /*fullTypeCheck*/ true ) ) ;
1281
+ }
1282
+
1278
1283
function createCompilerHost ( ) : CompilerHost {
1279
1284
return {
1280
1285
getSourceFile : ( filename , languageVersion ) => {
@@ -1407,7 +1412,7 @@ module ts {
1407
1412
// Now create a new compiler
1408
1413
program = createProgram ( hostfilenames , compilationSettings , createCompilerHost ( ) ) ;
1409
1414
typeInfoResolver = program . getTypeChecker ( /*fullTypeCheckMode*/ false ) ;
1410
- fullTypeCheckChecker = program . getTypeChecker ( /*fullTypeCheckMode*/ true ) ;
1415
+ fullTypeCheckChecker_doNotAccessDirectly = undefined ;
1411
1416
}
1412
1417
1413
1418
/// Clean up any semantic caches that are not needed.
@@ -1416,7 +1421,7 @@ module ts {
1416
1421
function cleanupSemanticCache ( ) : void {
1417
1422
if ( program ) {
1418
1423
typeInfoResolver = program . getTypeChecker ( /*fullTypeCheckMode*/ false ) ;
1419
- fullTypeCheckChecker = program . getTypeChecker ( /*fullTypeCheckMode*/ true ) ;
1424
+ fullTypeCheckChecker_doNotAccessDirectly = undefined ;
1420
1425
}
1421
1426
}
1422
1427
@@ -1441,7 +1446,7 @@ module ts {
1441
1446
1442
1447
filename = TypeScript . switchToForwardSlashes ( filename )
1443
1448
1444
- return fullTypeCheckChecker . getDiagnostics ( getSourceFile ( filename ) ) ;
1449
+ return getFullTypeCheckChecker ( ) . getDiagnostics ( getSourceFile ( filename ) ) ;
1445
1450
}
1446
1451
1447
1452
function getCompilerOptionsDiagnostics ( ) {
0 commit comments