Skip to content

Commit

Permalink
Remove FSharpProjectOptions from Transparent Compiler check results (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
0101 authored Jan 21, 2025
1 parent 686dcab commit 9800899
Show file tree
Hide file tree
Showing 5 changed files with 19 additions and 12 deletions.
2 changes: 2 additions & 0 deletions docs/release-notes/.FSharp.Compiler.Service/9.0.300.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,8 @@
* Added missing type constraints in FCS. ([PR #18241](https://github.com/dotnet/fsharp/pull/18241))

### Changed

* FSharpCheckFileResults.ProjectContext.ProjectOptions will not be available when using the experimental Transparent Compiler feature. ([PR #18205](https://github.com/dotnet/fsharp/pull/18205))
* Update `Obsolete` attribute checking to account for `DiagnosticId` and `UrlFormat` properties. ([PR #18224](https://github.com/dotnet/fsharp/pull/18224))

### Breaking Changes
4 changes: 2 additions & 2 deletions src/Compiler/Service/BackgroundCompiler.fs
Original file line number Diff line number Diff line change
Expand Up @@ -1066,7 +1066,7 @@ type internal BackgroundCompiler
tcProj.TcGlobals,
options.IsIncompleteTypeCheckEnvironment,
Some builder,
options,
Some options,
Array.ofList tcDependencyFiles,
creationDiags,
parseResults.Diagnostics,
Expand Down Expand Up @@ -1248,7 +1248,7 @@ type internal BackgroundCompiler
tcEnvAtEnd.AccessRights,
tcAssemblyExprOpt,
Array.ofList tcDependencyFiles,
options)
Some options)

let results =
FSharpCheckProjectResults(
Expand Down
17 changes: 11 additions & 6 deletions src/Compiler/Service/FSharpCheckerResults.fs
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ type internal TypeCheckInfo
tcAccessRights: AccessorDomain,
projectFileName: string,
mainInputFileName: string,
projectOptions: FSharpProjectOptions,
projectOptions: FSharpProjectOptions option,
sResolutions: TcResolutions,
sSymbolUses: TcSymbolUses,
sFallback: NameResolutionEnv,
Expand Down Expand Up @@ -3289,7 +3289,7 @@ module internal ParseAndCheckFile =
tcEnvAtEnd.AccessRights,
projectFileName,
mainInputFileName,
projectOptions,
Some projectOptions,
sink.GetResolutions(),
sink.GetSymbolUses(),
tcEnvAtEnd.NameEnv,
Expand All @@ -3302,9 +3302,14 @@ module internal ParseAndCheckFile =
}

[<Sealed>]
type FSharpProjectContext(thisCcu: CcuThunk, assemblies: FSharpAssembly list, ad: AccessorDomain, projectOptions: FSharpProjectOptions) =
type FSharpProjectContext
(thisCcu: CcuThunk, assemblies: FSharpAssembly list, ad: AccessorDomain, projectOptions: FSharpProjectOptions option) =

member _.ProjectOptions = projectOptions
// TODO: Once API around Transparent Compiler is stabilized we should probably remove this.
member _.ProjectOptions =
projectOptions
|> Option.defaultWith (fun () ->
failwith "ProjectOptions are not available. This is expected when using FSharpChecker with useTransparentCompiler=true.")

member _.GetReferencedAssemblies() = assemblies

Expand Down Expand Up @@ -3713,7 +3718,7 @@ type FSharpCheckProjectResults
AccessorDomain *
CheckedImplFile list option *
string[] *
FSharpProjectOptions) option
FSharpProjectOptions option) option
) =

let getDetails () =
Expand Down Expand Up @@ -4009,7 +4014,7 @@ type FsiInteractiveChecker(legacyReferenceResolver, tcConfig: TcConfig, tcGlobal
tcState.TcEnvFromImpls.AccessRights,
None,
dependencyFiles,
projectOptions)
Some projectOptions)

let projectResults =
FSharpCheckProjectResults(fileName, Some tcConfig, keepAssemblyContents, errors, Some details)
Expand Down
4 changes: 2 additions & 2 deletions src/Compiler/Service/FSharpCheckerResults.fsi
Original file line number Diff line number Diff line change
Expand Up @@ -454,7 +454,7 @@ type public FSharpCheckFileResults =
tcGlobals: TcGlobals *
isIncompleteTypeCheckEnvironment: bool *
builder: IncrementalBuilder option *
projectOptions: FSharpProjectOptions *
projectOptions: FSharpProjectOptions option *
dependencyFiles: string[] *
creationErrors: FSharpDiagnostic[] *
parseErrors: FSharpDiagnostic[] *
Expand Down Expand Up @@ -554,7 +554,7 @@ type public FSharpCheckProjectResults =
AccessorDomain *
CheckedImplFile list option *
string[] *
FSharpProjectOptions) option ->
FSharpProjectOptions option) option ->
FSharpCheckProjectResults

module internal ParseAndCheckFile =
Expand Down
4 changes: 2 additions & 2 deletions src/Compiler/Service/TransparentCompiler.fs
Original file line number Diff line number Diff line change
Expand Up @@ -1696,7 +1696,7 @@ type internal TransparentCompiler
bootstrapInfo.TcGlobals,
projectSnapshot.IsIncompleteTypeCheckEnvironment,
None,
projectSnapshot.ToOptions(),
None,
Array.ofList tcInfo.tcDependencyFiles,
creationDiags,
parseResults.Diagnostics,
Expand Down Expand Up @@ -1963,7 +1963,7 @@ type internal TransparentCompiler
tcEnvAtEnd.AccessRights,
Some checkedImplFiles,
Array.ofList tcDependencyFiles,
projectSnapshot.ToOptions())
None)

let results =
FSharpCheckProjectResults(
Expand Down

0 comments on commit 9800899

Please sign in to comment.