@@ -1396,7 +1396,7 @@ type FSharpParsingOptions =
13961396}
13971397
13981398static member FromTcConfigBuidler ( tcConfigB : TcConfigBuilder , sourceFiles ) =
1399- {
1399+ {
14001400 SourceFiles= sourceFiles
14011401 ConditionalCompilationDefines= tcConfigB.conditionalCompilationDefines
14021402 ErrorSeverityOptions= tcConfigB.errorSeverityOptions
@@ -1724,7 +1724,7 @@ type FSharpProjectOptions =
17241724member x.ProjectOptions = x.OtherOptions
17251725/// Whether the two parse options refer to the same project.
17261726static member UseSameProjectFileName ( options1 , options2 ) =
1727- options1.ProjectFileName= options2.ProjectFileName
1727+ options1.ProjectFileName= options2.ProjectFileName
17281728
17291729/// Compare two options sets with respect to the parts of the options that are important to building.
17301730static member AreSameForChecking ( options1 , options2 ) =
@@ -1737,7 +1737,9 @@ type FSharpProjectOptions =
17371737 options1.UnresolvedReferences= options2.UnresolvedReferences&&
17381738 options1.OriginalLoadReferences= options2.OriginalLoadReferences&&
17391739 options1.ReferencedProjects.Length= options2.ReferencedProjects.Length&&
1740- Array.forall2( fun ( n1 , a ) ( n2 , b ) -> n1= n2&& FSharpProjectOptions.AreSameForChecking( a, b)) options1.ReferencedProjects options2.ReferencedProjects&&
1740+ Array.forall2( fun ( n1 , a ) ( n2 , b ) ->
1741+ n1= n2&&
1742+ FSharpProjectOptions.AreSameForChecking( a, b)) options1.ReferencedProjects options2.ReferencedProjects&&
17411743 options1.LoadTime= options2.LoadTime
17421744
17431745/// Compute the project directory.
@@ -2043,11 +2045,11 @@ module Helpers =
20432045
20442046// Look for DLLs in the location of the service DLL first.
20452047let defaultFSharpBinariesDir = FSharpEnvironment.BinFolderOfDefaultFSharpCompiler( Some( typeof< FSharpCheckFileAnswer>. Assembly.Location)) .Value
2046-
2048+
20472049/// Determine whether two (fileName,options) keys are identical w.r.t. affect on checking
2048- let AreSameForChecking2 (( fileName1 : string , options1 : FSharpProjectOptions ), ( fileName2 , o2 )) =
2050+ let AreSameForChecking2 (( fileName1 : string , options1 : FSharpProjectOptions ), ( fileName2 , options2 )) =
20492051( fileName1= fileName2)
2050- && FSharpProjectOptions.AreSameForChecking( options1, o2 )
2052+ && FSharpProjectOptions.AreSameForChecking( options1, options2 )
20512053
20522054/// Determine whether two (fileName,options) keys should be identical w.r.t. resource usage
20532055let AreSubsumable2 (( fileName1 : string , o1 : FSharpProjectOptions ),( fileName2 : string , o2 : FSharpProjectOptions )) =
@@ -2711,7 +2713,7 @@ type BackgroundCompiler(legacyReferenceResolver, projectCacheSize, keepAssemblyC
27112713member bc.InvalidateConfiguration ( options : FSharpProjectOptions , startBackgroundCompileIfAlreadySeen , userOpName ) =
27122714let startBackgroundCompileIfAlreadySeen = defaultArg startBackgroundCompileIfAlreadySeen implicitlyStartBackgroundWork
27132715// This operation can't currently be cancelled nor awaited
2714- reactor.EnqueueOp( userOpName, " InvalidateConfiguration" , options.ProjectFileName, fun ctok ->
2716+ reactor.EnqueueOp( userOpName, " InvalidateConfiguration: Stamp( " + ( options.Stamp |> Option.defaultValue 0 L ) .ToString () + " ) " , options.ProjectFileName, fun ctok ->
27152717// If there was a similar entry then re-establish an empty builder . This is a somewhat arbitrary choice - it
27162718// will have the effect of releasing memory associated with the previous builder, but costs some time.
27172719if incrementalBuildersCache.ContainsSimilarKey( ctok, options) then