You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Replace (nearly) all ref cells in the compiler with mutable values (#8063)
* # This is a combination of 9 commits.
# This is the 1st commit message:
ref -> mutable in more places in the compiler
# The commit message #2 will be skipped:
# Update dependencies from https://github.com/dotnet/arcade build 20191229.1
#
# - Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19629.1
# The commit message #3 will be skipped:
# Update dependencies from https://github.com/dotnet/arcade build 20191230.1
#
# - Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19630.1
# The commit message #4 will be skipped:
# Update dependencies from https://github.com/dotnet/arcade build 20191231.1
#
# - Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.19631.1
# The commit message #5 will be skipped:
# Update dependencies from https://github.com/dotnet/arcade build 20200101.1
#
# - Microsoft.DotNet.Arcade.Sdk - 5.0.0-beta.20051.1
# The commit message #6 will be skipped:
# Update dependencies from https://github.com/dotnet/arcade build 20191216.5 (#8079)
#
# - Microsoft.DotNet.Arcade.Sdk - 1.0.0-beta.19616.5
# The commit message #7 will be skipped:
# dispose fsi at the end of a scripting session (#8084)
#
# The commit message #8 will be skipped:
# Added static link tests and extended CompilerAssert (#8101)
#
# * Changed CompilerAssert to static class. Added Compile/Execute methods that take a Compilation description. Added static link tests
#
# * Hiding compilation description internals
#
# * Added another test to check for sanity
#
# * Making a few optional parameters
#
# * Hiding internals of CompilationReference
# The commit message #9 will be skipped:
# Parameterize product version (#8031)
#
# * Parameterize Product details
#
# * fcs
#
# * Repack pkgdef
* no ilread
letaddedText="\nIf you want to debug this right now, attach a debugger, and put a breakpoint in 'CompileOps.fs' near the text '!itFailed', and you can re-step through the assembly resolution logic."
tcImportsStrong.AttachDisposeTypeProviderAction(fun()-> systemRuntimeContainsTypeRef :=(fun _ -> raise (System.ObjectDisposedException("The type provider has been disposed"))))
4212
-
fun arg -> systemRuntimeContainsTypeRef.Value arg
4210
+
let mutablesystemRuntimeContainsTypeRef=fun typeName -> tcImports.SystemRuntimeContainsType typeName
4211
+
tcImportsStrong.AttachDisposeTypeProviderAction(fun()-> systemRuntimeContainsTypeRef <-fun _ -> raise (System.ObjectDisposedException("The type provider has been disposed")))
4212
+
fun arg -> systemRuntimeContainsTypeRef arg
4213
4213
4214
4214
letproviders=
4215
4215
[for designTimeAssemblyName in designTimeAssemblyNames do
@@ -4676,7 +4676,7 @@ and [<Sealed>] TcImports(tcConfigP: TcConfigProvider, initialResolutions: TcAsse
4676
4676
error(InternalError("BuildFrameworkTcImports: no successful import of "+coreLibraryResolution.resolvedPath, coreLibraryResolution.originalReference.Range))
4677
4677
| None ->
4678
4678
error(InternalError(sprintf "BuildFrameworkTcImports: no resolution of '%s'" coreLibraryReference.Text, rangeStartup))
4679
-
IlxSettings.ilxFsharpCoreLibAssemRef :=
4679
+
IlxSettings.ilxFsharpCoreLibAssemRef <-
4680
4680
(letscoref= fslibCcuInfo.ILScopeRef
4681
4681
match scoref with
4682
4682
| ILScopeRef.Assembly aref -> Some aref
@@ -4691,11 +4691,11 @@ and [<Sealed>] TcImports(tcConfigP: TcConfigProvider, initialResolutions: TcAsse
4691
4691
4692
4692
#if DEBUG
4693
4693
// the global_g reference cell is used only for debug printing
4694
-
global_g := Some tcGlobals
4694
+
global_g <- Some tcGlobals
4695
4695
#endif
4696
4696
// do this prior to parsing, since parsing IL assembly code may refer to mscorlib
0 commit comments