Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions docs/release-notes/.FSharp.Compiler.Service/11.0.100.md
Original file line number Diff line number Diff line change
Expand Up @@ -178,6 +178,7 @@

* IL: cache C# extension methods per CCU ([PR #20256](https://github.com/dotnet/fsharp/pull/20256))
* Nullness warning FS3261 on dotted method or property access (e.g. `x.Member`) now underlines the receiver expression and includes the member name and (when known) the binding name in the message. ([Issue #19658](https://github.com/dotnet/fsharp/issues/19658), [PR #19814](https://github.com/dotnet/fsharp/pull/19814))
* Import: share assembly CCUs between projects ([PR #20296](https://github.com/dotnet/fsharp/pull/20296))
* IL: share the pickled references ([PR #20301](https://github.com/dotnet/fsharp/pull/20301))
* Direct delegate construction ([PR ##19993](https://github.com/dotnet/fsharp/pull/19993))
* IL: add `ILPreNamespace`, make `ILPreTypeDef` creation lazy ([PR #20092](https://github.com/dotnet/fsharp/pull/20092))
Expand Down
18 changes: 18 additions & 0 deletions src/Compiler/Driver/CompilerConfig.fs
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,13 @@ type TypeCheckingConfig =
DumpGraph: bool
}

[<RequireQualifiedAccess>]
type ImportReuseKey =
{
LangVersion: decimal
CheckNullness: bool
}

[<NoEquality; NoComparison>]
type TcConfigBuilder =
{
Expand Down Expand Up @@ -645,6 +652,8 @@ type TcConfigBuilder =

mutable parallelReferenceResolution: ParallelReferenceResolution

mutable shareImportedAssemblies: bool

mutable captureIdentifiersWhenParsing: bool

mutable typeCheckingConfig: TypeCheckingConfig
Expand Down Expand Up @@ -844,6 +853,7 @@ type TcConfigBuilder =
xmlDocInfoLoader = None
exiter = QuitProcessExiter
parallelReferenceResolution = ParallelReferenceResolution.On
shareImportedAssemblies = true
captureIdentifiersWhenParsing = false
typeCheckingConfig =
{
Expand Down Expand Up @@ -1397,8 +1407,16 @@ type TcConfig private (data: TcConfigBuilder, validate: bool) =
member _.xmlDocInfoLoader = data.xmlDocInfoLoader
member _.exiter = data.exiter
member _.parallelReferenceResolution = data.parallelReferenceResolution
member _.shareImportedAssemblies = data.shareImportedAssemblies
member _.captureIdentifiersWhenParsing = data.captureIdentifiersWhenParsing
member _.typeCheckingConfig = data.typeCheckingConfig

member _.importReuseKey =
{
ImportReuseKey.LangVersion = data.langVersion.SpecifiedVersion
ImportReuseKey.CheckNullness = data.checkNullness
}

member _.dumpSignatureData = data.dumpSignatureData
member _.realsig = data.realsig
member _.compilationMode = data.compilationMode
Expand Down
12 changes: 12 additions & 0 deletions src/Compiler/Driver/CompilerConfig.fsi
Original file line number Diff line number Diff line change
Expand Up @@ -225,6 +225,12 @@ type TypeCheckingConfig =
DumpGraph: bool
}

/// A field belongs here when two projects differing in it cannot reuse one imported form
[<RequireQualifiedAccess>]
type ImportReuseKey =
{ LangVersion: decimal
CheckNullness: bool }

[<NoEquality; NoComparison>]
type TcConfigBuilder =
{
Expand Down Expand Up @@ -515,6 +521,8 @@ type TcConfigBuilder =

mutable parallelReferenceResolution: ParallelReferenceResolution

mutable shareImportedAssemblies: bool

mutable captureIdentifiersWhenParsing: bool

mutable typeCheckingConfig: TypeCheckingConfig
Expand Down Expand Up @@ -888,10 +896,14 @@ type TcConfig =

member parallelReferenceResolution: ParallelReferenceResolution

member shareImportedAssemblies: bool

member captureIdentifiersWhenParsing: bool

member typeCheckingConfig: TypeCheckingConfig

member importReuseKey: ImportReuseKey

member dumpSignatureData: bool

member realsig: bool
Expand Down
Loading
Loading