@@ -143,18 +143,25 @@ module ts {
143143 let files : SourceFile [ ] = [ ] ;
144144 let filesByName : Map < SourceFile > = { } ;
145145 let diagnostics = createDiagnosticCollection ( ) ;
146- let seenNoDefaultLib = options . noLib ;
147146 let commonSourceDirectory : string ;
148147 let diagnosticsProducingTypeChecker : TypeChecker ;
149148 let noDiagnosticsTypeChecker : TypeChecker ;
150149
150+ // shouldExcludeDefaultLib is true if:
151+ // - The '--noLib' flag is used.
152+ // - A 'no-default-lib' reference comment is encountered in
153+ // processing the root files.
154+ let shouldExcludeDefaultLib = options . noLib ;
155+
151156 let start = new Date ( ) . getTime ( ) ;
152157
153158 host = host || createCompilerHost ( options ) ;
154- forEach ( rootNames , name => processRootFile ( name , false ) ) ;
155- if ( ! seenNoDefaultLib ) {
156- processRootFile ( host . getDefaultLibFileName ( options ) , true ) ;
159+
160+ forEach ( rootNames , name => processRootFile ( name , /*isDefaultLib */ false ) ) ;
161+ if ( ! shouldExcludeDefaultLib ) {
162+ processRootFile ( host . getDefaultLibFileName ( options ) , /*isDefaultLib*/ true ) ;
157163 }
164+
158165 verifyCompilerOptions ( ) ;
159166
160167 programTime += new Date ( ) . getTime ( ) - start ;
@@ -360,7 +367,7 @@ module ts {
360367 }
361368 } ) ;
362369 if ( file ) {
363- seenNoDefaultLib = seenNoDefaultLib || file . hasNoDefaultLib ;
370+ shouldExcludeDefaultLib = shouldExcludeDefaultLib || file . hasNoDefaultLib ;
364371
365372 // Set the source file for normalized absolute path
366373 filesByName [ canonicalAbsolutePath ] = file ;
0 commit comments