Skip to content

Commit 587433d

Browse files
cartermpbaronfel
authored andcommitted
Reconfigure Legacy MSBuildReferenceResolver to be API-driven (#6898)
* Don't expose Legacy MSBuildReferenceResolver * Move the files boss hoss * Remove unused opens * Fix tests * oopsie doopsie * Do it better * fix * Fix FCS
1 parent 302bea2 commit 587433d

File tree

7 files changed

+20
-13
lines changed

7 files changed

+20
-13
lines changed

fcs/FSharp.Compiler.Service.MSBuild.v12/FSharp.Compiler.Service.MSBuild.v12.fsproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
<PackageTags>F#, compiler, msbuild</PackageTags>
1818
</PropertyGroup>
1919
<ItemGroup>
20-
<Compile Include="..\..\src\fsharp\MSBuildReferenceResolver.fs">
20+
<Compile Include="$(FSharpSourcesRoot)\fsharp\LegacyMSBuildReferenceResolver.fs">
2121
<Link>Service/MSBuildReferenceResolver.fs</Link>
2222
</Compile>
2323
</ItemGroup>

fcs/FSharp.Compiler.Service/FSharp.Compiler.Service.fsproj

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -187,9 +187,6 @@
187187
<Compile Include="$(FSharpSourcesRoot)/fsharp/ErrorResolutionHints.fs">
188188
<Link>ErrorLogging/ErrorResolutionHints.fs</Link>
189189
</Compile>
190-
<Compile Include="$(FSharpSourcesRoot)/fsharp/ReferenceResolver.fs">
191-
<Link>ReferenceResolution/ReferenceResolver.fs</Link>
192-
</Compile>
193190
<FsLex Include="$(FSharpSourcesRoot)\absil\illex.fsl">
194191
<OtherFlags>--unicode --lexlib Internal.Utilities.Text.Lexing</OtherFlags>
195192
<Link>AbsIL/illex.fsl</Link>
@@ -270,6 +267,12 @@
270267
<Compile Include="$(FSharpSourcesRoot)/absil/ilreflect.fs">
271268
<Link>AbsIL/ilreflect.fs</Link>
272269
</Compile>
270+
<Compile Include="$(FSharpSourcesRoot)/fsharp/ReferenceResolver.fs">
271+
<Link>ReferenceResolution/ReferenceResolver.fs</Link>
272+
</Compile>
273+
<Compile Include="$(FSharpSourcesRoot)\fsharp\SimulatedMSBuildReferenceResolver.fs">
274+
<Link>ReferenceResolution/SimulatedMSBuildReferenceResolver.fs</Link>
275+
</Compile>
273276
<Compile Include="$(FSharpSourcesRoot)/utils/CompilerLocationUtils.fs">
274277
<Link>CompilerLocation/CompilerLocationUtils.fs</Link>
275278
</Compile>
@@ -591,9 +594,6 @@
591594
<Compile Include="$(FSharpSourcesRoot)\utils\reshapedmsbuild.fs">
592595
<Link>Service/reshapedmsbuild.fs</Link>
593596
</Compile>
594-
<Compile Include="$(FSharpSourcesRoot)\fsharp\SimulatedMSBuildReferenceResolver.fs">
595-
<Link>Service/SimulatedMSBuildReferenceResolver.fs</Link>
596-
</Compile>
597597
<Compile Include="$(FSharpSourcesRoot)\fsharp\service\ServiceDeclarationLists.fsi">
598598
<Link>Service/ServiceDeclarationLists.fsi</Link>
599599
</Compile>

src/fsharp/MSBuildReferenceResolver.fs renamed to src/fsharp/LegacyMSBuildReferenceResolver.fs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
22

3-
module internal FSharp.Compiler.MSBuildReferenceResolver
3+
module LegacyMSBuildReferenceResolver
44

55
open System
66
open System.IO
@@ -16,6 +16,7 @@ module internal FSharp.Compiler.MSBuildReferenceResolver
1616
open Microsoft.Build.Tasks
1717
open Microsoft.Build.Utilities
1818
open Microsoft.Build.Framework
19+
open FSharp.Compiler
1920

2021
// Reflection wrapper for properties
2122
type System.Object with
@@ -367,7 +368,7 @@ module internal FSharp.Compiler.MSBuildReferenceResolver
367368

368369
resolvedFiles
369370

370-
let Resolver =
371+
let getResolver () =
371372
{ new ReferenceResolver.Resolver with
372373
member __.HighestInstalledNetFrameworkVersion() = HighestInstalledRefAssembliesOrDotNETFramework()
373374
member __.DotNetFrameworkReferenceAssembliesRootDirectory = DotNetFrameworkReferenceAssembliesRootDirectory
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
2+
module LegacyMSBuildReferenceResolver
3+
4+
open FSharp.Compiler
5+
6+
val getResolver: unit -> ReferenceResolver.Resolver

src/fsharp/fscmain.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ module Driver =
6262
#if CROSS_PLATFORM_COMPILER
6363
SimulatedMSBuildReferenceResolver.SimulatedMSBuildResolver
6464
#else
65-
MSBuildReferenceResolver.Resolver
65+
LegacyMSBuildReferenceResolver.getResolver()
6666
#endif
6767

6868
// This is the only place where ReduceMemoryFlag.No is set. This is because fsc.exe is not a long-running process and

src/fsharp/fsi/fsimain.fs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -228,7 +228,7 @@ let evaluateSession(argv: string[]) =
228228
#if CROSS_PLATFORM_COMPILER
229229
SimulatedMSBuildReferenceResolver.SimulatedMSBuildResolver
230230
#else
231-
MSBuildReferenceResolver.Resolver
231+
LegacyMSBuildReferenceResolver.getResolver()
232232
#endif
233233
// Update the configuration to include 'StartServer', WinFormsEventLoop and 'GetOptionalConsoleReadLine()'
234234
let rec fsiConfig =

src/fsharp/service/service.fs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2945,9 +2945,9 @@ type FSharpChecker(legacyReferenceResolver, projectCacheSize, keepAssemblyConten
29452945
static member Create(?projectCacheSize, ?keepAssemblyContents, ?keepAllBackgroundResolutions, ?legacyReferenceResolver, ?tryGetMetadataSnapshot, ?suggestNamesForErrors) =
29462946

29472947
let legacyReferenceResolver =
2948-
match legacyReferenceResolver with
2949-
| None -> SimulatedMSBuildReferenceResolver.GetBestAvailableResolver()
2948+
match legacyReferenceResolver with
29502949
| Some rr -> rr
2950+
| None -> SimulatedMSBuildReferenceResolver.GetBestAvailableResolver()
29512951

29522952
let keepAssemblyContents = defaultArg keepAssemblyContents false
29532953
let keepAllBackgroundResolutions = defaultArg keepAllBackgroundResolutions true

0 commit comments

Comments
 (0)