From e7f9930467bb7d206c3cc2412da41053f4d520a7 Mon Sep 17 00:00:00 2001 From: nojaf Date: Fri, 23 Jun 2023 09:09:45 +0200 Subject: [PATCH 1/6] WIP --- src/Compiler/Checking/CheckDeclarations.fs | 3 + src/Compiler/FSharp.Compiler.Service.rsp | 499 ++++++++++++++++++ src/Compiler/SyntaxTree/PrettyNaming.fs | 1 - src/Compiler/SyntaxTree/SyntaxTree.fs | 2 +- src/Compiler/SyntaxTree/SyntaxTreeOps.fs | 108 ++-- src/Compiler/SyntaxTree/XmlDoc.fs | 1 - src/Compiler/SyntaxTree/XmlDoc.fsi | 1 - src/Compiler/Trimmed.rsp | 226 ++++++++ .../Graph/CompilationFromCmdlineArgsTests.fs | 11 +- 9 files changed, 790 insertions(+), 62 deletions(-) create mode 100644 src/Compiler/FSharp.Compiler.Service.rsp create mode 100644 src/Compiler/Trimmed.rsp diff --git a/src/Compiler/Checking/CheckDeclarations.fs b/src/Compiler/Checking/CheckDeclarations.fs index a37c39a7d43..a5a3dcd8dd1 100644 --- a/src/Compiler/Checking/CheckDeclarations.fs +++ b/src/Compiler/Checking/CheckDeclarations.fs @@ -4662,6 +4662,9 @@ let rec TcSignatureElementNonMutRec (cenv: cenv) parent typeNames endm (env: TcE | Some(p, _) -> TcOpenModuleOrNamespaceDecl cenv.tcSink g cenv.amap m.EndRange env ([p], m.EndRange) | None -> env, [] + if m.FileName.EndsWith("Continuation.fsi") then + () + // Publish the combined module type env.eModuleOrNamespaceTypeAccumulator.Value <- CombineCcuContentFragments [env.eModuleOrNamespaceTypeAccumulator.Value; modTyRoot] diff --git a/src/Compiler/FSharp.Compiler.Service.rsp b/src/Compiler/FSharp.Compiler.Service.rsp new file mode 100644 index 00000000000..f42fd83c989 --- /dev/null +++ b/src/Compiler/FSharp.Compiler.Service.rsp @@ -0,0 +1,499 @@ +-o:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSharp.Compiler.Service.dll +-g +--debug:embedded +--noframework +--define:TRACE +--define:COMPILER +--define:FSHARPCORE_USE_PACKAGE +--define:DEBUG +--define:NETSTANDARD +--define:FX_NO_WINFORMS +--define:Debug +--define:NETSTANDARD +--define:NETSTANDARD2_0 +--define:NETSTANDARD1_0_OR_GREATER +--define:NETSTANDARD1_1_OR_GREATER +--define:NETSTANDARD1_2_OR_GREATER +--define:NETSTANDARD1_3_OR_GREATER +--define:NETSTANDARD1_4_OR_GREATER +--define:NETSTANDARD1_5_OR_GREATER +--define:NETSTANDARD1_6_OR_GREATER +--define:NETSTANDARD2_0_OR_GREATER +--doc:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSharp.Compiler.Service.xml +--optimize- +--resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSComp.resources +--resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSIstrings.resources +--resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\UtilsStrings.resources +--resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSStrings.resources +-r:C:\Users\nojaf\.nuget\packages\fsharp.core\7.0.0\lib\netstandard2.0\FSharp.Core.dll +-r:C:\Users\nojaf\Projects\fsharp\artifacts\bin\FSharp.DependencyManager.Nuget\Debug\netstandard2.0\FSharp.DependencyManager.Nuget.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\Microsoft.Win32.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\mscorlib.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\netstandard.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.AppContext.dll +-r:C:\Users\nojaf\.nuget\packages\system.buffers\4.5.1\ref\netstandard2.0\System.Buffers.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Concurrent.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.dll +-r:C:\Users\nojaf\.nuget\packages\system.collections.immutable\6.0.0\lib\netstandard2.0\System.Collections.Immutable.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.NonGeneric.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Specialized.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Composition.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.EventBasedAsync.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.TypeConverter.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Console.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Core.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.Common.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Contracts.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Debug.dll +-r:C:\Users\nojaf\.nuget\packages\system.diagnostics.diagnosticsource\7.0.0\lib\netstandard2.0\System.Diagnostics.DiagnosticSource.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.FileVersionInfo.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Process.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.StackTrace.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TextWriterTraceListener.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tools.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TraceSource.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tracing.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Dynamic.Runtime.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Calendars.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Extensions.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.FileSystem.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.ZipFile.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.DriveInfo.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Watcher.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.IsolatedStorage.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.MemoryMappedFiles.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Pipes.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.UnmanagedMemoryStream.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Expressions.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Parallel.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Queryable.dll +-r:C:\Users\nojaf\.nuget\packages\system.memory\4.5.5\lib\netstandard2.0\System.Memory.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Http.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NameResolution.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NetworkInformation.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Ping.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Requests.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Security.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Sockets.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebHeaderCollection.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.Client.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Numerics.dll +-r:C:\Users\nojaf\.nuget\packages\system.numerics.vectors\4.4.0\ref\netstandard2.0\System.Numerics.Vectors.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ObjectModel.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.dll +-r:C:\Users\nojaf\.nuget\packages\system.reflection.emit\4.7.0\ref\netstandard2.0\System.Reflection.Emit.dll +-r:C:\Users\nojaf\.nuget\packages\system.reflection.emit.ilgeneration\4.7.0\ref\netstandard2.0\System.Reflection.Emit.ILGeneration.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Extensions.dll +-r:C:\Users\nojaf\.nuget\packages\system.reflection.metadata\6.0.1\lib\netstandard2.0\System.Reflection.Metadata.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Reader.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.ResourceManager.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Writer.dll +-r:C:\Users\nojaf\.nuget\packages\system.runtime.compilerservices.unsafe\6.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.CompilerServices.VisualC.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Extensions.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Handles.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.RuntimeInformation.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Numerics.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Formatters.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Json.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Xml.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Claims.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Algorithms.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Csp.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Encoding.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.X509Certificates.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Principal.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.SecureString.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ServiceModel.Web.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.Extensions.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.RegularExpressions.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Overlapped.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.Parallel.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Thread.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.ThreadPool.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Timer.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Transactions.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ValueTuple.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Web.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Windows.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Linq.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.ReaderWriter.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Serialization.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XDocument.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlDocument.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlSerializer.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.XDocument.dll +--target:library +--nowarn:44,57,75,1204,NU5125,IL2121 +--warn:3 +--warnaserror:3239,1182,0025 +--fullpaths +--flaterrors +--highentropyva+ +--targetprofile:netstandard +--nocopyfsharpcore +--deterministic+ +--simpleresolution +--nowarn:3384 +--times +--nowarn:75 +--extraoptimizationloops:1 +--warnon:1182 +--warnon:3218 +--warnon:3390 +--simpleresolution +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\buildproperties.fs +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSComp.fs +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSIstrings.fs +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\UtilsStrings.fs +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\.NETStandard,Version=v2.0.AssemblyAttributes.fs +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSharp.Compiler.Service.AssemblyInfo.fs +Utilities\Activity.fsi +Utilities\Activity.fs +Utilities\sformat.fsi +Utilities\sformat.fs +Utilities\sr.fsi +Utilities\sr.fs +Utilities\ResizeArray.fsi +Utilities\ResizeArray.fs +Utilities\HashMultiMap.fsi +Utilities\HashMultiMap.fs +Utilities\EditDistance.fsi +Utilities\EditDistance.fs +Utilities\TaggedCollections.fsi +Utilities\TaggedCollections.fs +Utilities\illib.fsi +Utilities\illib.fs +Utilities\FileSystem.fsi +Utilities\FileSystem.fs +Utilities\ildiag.fsi +Utilities\ildiag.fs +Utilities\zmap.fsi +Utilities\zmap.fs +Utilities\zset.fsi +Utilities\zset.fs +Utilities\XmlAdapters.fsi +Utilities\XmlAdapters.fs +Utilities\InternalCollections.fsi +Utilities\InternalCollections.fs +Utilities\QueueList.fsi +Utilities\QueueList.fs +Utilities\lib.fsi +Utilities\lib.fs +Utilities\ImmutableArray.fsi +Utilities\ImmutableArray.fs +Utilities\rational.fsi +Utilities\rational.fs +Utilities\PathMap.fsi +Utilities\PathMap.fs +Utilities\RidHelpers.fs +Utilities\range.fsi +Utilities\range.fs +Facilities\LanguageFeatures.fsi +Facilities\LanguageFeatures.fs +Facilities\DiagnosticOptions.fsi +Facilities\DiagnosticOptions.fs +Facilities\TextLayoutRender.fsi +Facilities\TextLayoutRender.fs +Facilities\DiagnosticsLogger.fsi +Facilities\DiagnosticsLogger.fs +Facilities\DiagnosticResolutionHints.fsi +Facilities\DiagnosticResolutionHints.fs +Facilities\prim-lexing.fsi +Facilities\prim-lexing.fs +Facilities\prim-parsing.fsi +Facilities\prim-parsing.fs +Facilities\ReferenceResolver.fsi +Facilities\ReferenceResolver.fs +Facilities\SimulatedMSBuildReferenceResolver.fsi +Facilities\SimulatedMSBuildReferenceResolver.fs +Facilities\CompilerLocation.fsi +Facilities\CompilerLocation.fs +Facilities\BuildGraph.fsi +Facilities\BuildGraph.fs +AbstractIL\il.fsi +AbstractIL\il.fs +AbstractIL\ilx.fsi +AbstractIL\ilx.fs +AbstractIL\ilascii.fsi +AbstractIL\ilascii.fs +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\ilpars.fsi +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\ilpars.fs +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\illex.fsi +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\illex.fs +AbstractIL\ilprint.fsi +AbstractIL\ilprint.fs +AbstractIL\ilmorph.fsi +AbstractIL\ilmorph.fs +AbstractIL\ilsign.fsi +AbstractIL\ilsign.fs +AbstractIL\ilnativeres.fsi +AbstractIL\ilnativeres.fs +AbstractIL\ilsupp.fsi +AbstractIL\ilsupp.fs +AbstractIL\ilbinary.fsi +AbstractIL\ilbinary.fs +AbstractIL\ilread.fsi +AbstractIL\ilread.fs +AbstractIL\ilwritepdb.fsi +AbstractIL\ilwritepdb.fs +AbstractIL\ilwrite.fsi +AbstractIL\ilwrite.fs +AbstractIL\ilreflect.fsi +AbstractIL\ilreflect.fs +SyntaxTree\PrettyNaming.fsi +SyntaxTree\PrettyNaming.fs +SyntaxTree\UnicodeLexing.fsi +SyntaxTree\UnicodeLexing.fs +SyntaxTree\XmlDoc.fsi +SyntaxTree\XmlDoc.fs +SyntaxTree\SyntaxTrivia.fsi +SyntaxTree\SyntaxTrivia.fs +SyntaxTree\SyntaxTree.fsi +SyntaxTree\SyntaxTree.fs +SyntaxTree\SyntaxTreeOps.fsi +SyntaxTree\SyntaxTreeOps.fs +SyntaxTree\ParseHelpers.fsi +SyntaxTree\ParseHelpers.fs +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\pppars.fsi +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\pppars.fs +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\pars.fsi +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\pars.fs +SyntaxTree\LexHelpers.fsi +SyntaxTree\LexHelpers.fs +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\pplex.fsi +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\pplex.fs +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\\lex.fsi +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\\lex.fs +SyntaxTree\LexFilter.fsi +SyntaxTree\LexFilter.fs +TypedTree\tainted.fsi +TypedTree\tainted.fs +TypedTree\TypeProviders.fsi +TypedTree\TypeProviders.fs +TypedTree\QuotationPickler.fsi +TypedTree\QuotationPickler.fs +TypedTree\CompilerGlobalState.fsi +TypedTree\CompilerGlobalState.fs +TypedTree\TypedTree.fsi +TypedTree\TypedTree.fs +TypedTree\TypedTreeBasics.fsi +TypedTree\TypedTreeBasics.fs +TypedTree\TcGlobals.fs +TypedTree\TypedTreeOps.fsi +TypedTree\TypedTreeOps.fs +TypedTree\TypedTreePickle.fsi +TypedTree\TypedTreePickle.fs +TypedTree\UpdatePrettyTyparNames.fsi +TypedTree\UpdatePrettyTyparNames.fs +Checking\import.fsi +Checking\import.fs +Checking\TypeHierarchy.fsi +Checking\TypeHierarchy.fs +Checking\infos.fsi +Checking\infos.fs +Checking\AccessibilityLogic.fsi +Checking\AccessibilityLogic.fs +Checking\AttributeChecking.fsi +Checking\AttributeChecking.fs +Checking\TypeRelations.fsi +Checking\TypeRelations.fs +Checking\InfoReader.fsi +Checking\InfoReader.fs +Checking\NicePrint.fsi +Checking\NicePrint.fs +Checking\AugmentWithHashCompare.fsi +Checking\AugmentWithHashCompare.fs +Checking\NameResolution.fsi +Checking\NameResolution.fs +Checking\SignatureConformance.fsi +Checking\SignatureConformance.fs +Checking\MethodOverrides.fsi +Checking\MethodOverrides.fs +Checking\MethodCalls.fsi +Checking\MethodCalls.fs +Checking\PatternMatchCompilation.fsi +Checking\PatternMatchCompilation.fs +Checking\ConstraintSolver.fsi +Checking\ConstraintSolver.fs +Checking\CheckFormatStrings.fsi +Checking\CheckFormatStrings.fs +Checking\FindUnsolved.fsi +Checking\FindUnsolved.fs +Checking\QuotationTranslator.fsi +Checking\QuotationTranslator.fs +Checking\PostInferenceChecks.fsi +Checking\PostInferenceChecks.fs +Checking\CheckBasics.fsi +Checking\CheckBasics.fs +Checking\CheckRecordSyntaxHelpers.fsi +Checking\CheckRecordSyntaxHelpers.fs +Checking\CheckExpressions.fsi +Checking\CheckExpressions.fs +Checking\CheckPatterns.fsi +Checking\CheckPatterns.fs +Checking\CheckComputationExpressions.fsi +Checking\CheckComputationExpressions.fs +Checking\CheckIncrementalClasses.fsi +Checking\CheckIncrementalClasses.fs +Checking\CheckDeclarations.fsi +Checking\CheckDeclarations.fs +Optimize\Optimizer.fsi +Optimize\Optimizer.fs +Optimize\DetupleArgs.fsi +Optimize\DetupleArgs.fs +Optimize\InnerLambdasToTopLevelFuncs.fsi +Optimize\InnerLambdasToTopLevelFuncs.fs +Optimize\LowerCalls.fsi +Optimize\LowerCalls.fs +Optimize\LowerSequences.fsi +Optimize\LowerSequences.fs +Optimize\LowerComputedCollections.fsi +Optimize\LowerComputedCollections.fs +Optimize\LowerStateMachines.fsi +Optimize\LowerStateMachines.fs +Optimize\LowerLocalMutables.fsi +Optimize\LowerLocalMutables.fs +CodeGen\IlxGenSupport.fsi +CodeGen\IlxGenSupport.fs +CodeGen\EraseClosures.fsi +CodeGen\EraseClosures.fs +CodeGen\EraseUnions.fsi +CodeGen\EraseUnions.fs +CodeGen\IlxGen.fsi +CodeGen\IlxGen.fs +Driver\FxResolver.fsi +Driver\FxResolver.fs +DependencyManager/AssemblyResolveHandler.fsi +DependencyManager/AssemblyResolveHandler.fs +DependencyManager/NativeDllResolveHandler.fsi +DependencyManager/NativeDllResolveHandler.fs +DependencyManager/DependencyProvider.fsi +DependencyManager/DependencyProvider.fs +Driver\CompilerConfig.fsi +Driver\CompilerConfig.fs +Driver\CompilerImports.fsi +Driver\CompilerImports.fs +Driver\CompilerDiagnostics.fsi +Driver\CompilerDiagnostics.fs +Driver\GraphChecking\Continuation.fsi +Driver\GraphChecking\Continuation.fs +Driver\GraphChecking\Types.fsi +Driver\GraphChecking\Types.fs +Driver\GraphChecking\Graph.fsi +Driver\GraphChecking\Graph.fs +Driver\GraphChecking\TrieMapping.fsi +Driver\GraphChecking\TrieMapping.fs +Driver\GraphChecking\FileContentMapping.fsi +Driver\GraphChecking\FileContentMapping.fs +Driver\GraphChecking\DependencyResolution.fsi +Driver\GraphChecking\DependencyResolution.fs +Driver\GraphChecking\GraphProcessing.fsi +Driver\GraphChecking\GraphProcessing.fs +Driver\GraphChecking\TypeCheckingGraphProcessing.fsi +Driver\GraphChecking\TypeCheckingGraphProcessing.fs +Driver\ParseAndCheckInputs.fsi +Driver\ParseAndCheckInputs.fs +Driver\ScriptClosure.fsi +Driver\ScriptClosure.fs +Driver\CompilerOptions.fsi +Driver\CompilerOptions.fs +Driver\OptimizeInputs.fsi +Driver\OptimizeInputs.fs +Driver\XmlDocFileWriter.fsi +Driver\XmlDocFileWriter.fs +Driver\BinaryResourceFormats.fsi +Driver\BinaryResourceFormats.fs +Driver\StaticLinking.fsi +Driver\StaticLinking.fs +Driver\CreateILModule.fsi +Driver\CreateILModule.fs +Driver\fsc.fsi +Driver\fsc.fs +Symbols\FSharpDiagnostic.fsi +Symbols\FSharpDiagnostic.fs +Symbols\SymbolHelpers.fsi +Symbols\SymbolHelpers.fs +Symbols\Symbols.fsi +Symbols\Symbols.fs +Symbols\Exprs.fsi +Symbols\Exprs.fs +Symbols\SymbolPatterns.fsi +Symbols\SymbolPatterns.fs +Service\SemanticClassification.fsi +Service\SemanticClassification.fs +Service\ItemKey.fsi +Service\ItemKey.fs +Service\SemanticClassificationKey.fsi +Service\SemanticClassificationKey.fs +Service\FSharpSource.fsi +Service\FSharpSource.fs +Service\IncrementalBuild.fsi +Service\IncrementalBuild.fs +Service\ServiceCompilerDiagnostics.fsi +Service\ServiceCompilerDiagnostics.fs +Service\ServiceConstants.fs +Service\ServiceDeclarationLists.fsi +Service\ServiceDeclarationLists.fs +Service\ServiceLexing.fsi +Service\ServiceLexing.fs +Service\ServiceParseTreeWalk.fsi +Service\ServiceParseTreeWalk.fs +Service\ServiceNavigation.fsi +Service\ServiceNavigation.fs +Service\ServiceParamInfoLocations.fsi +Service\ServiceParamInfoLocations.fs +Service\FSharpParseFileResults.fsi +Service\FSharpParseFileResults.fs +Service\ServiceParsedInputOps.fsi +Service\ServiceParsedInputOps.fs +Service\ServiceAssemblyContent.fsi +Service\ServiceAssemblyContent.fs +Service\ServiceXmlDocParser.fsi +Service\ServiceXmlDocParser.fs +Service\ExternalSymbol.fsi +Service\ExternalSymbol.fs +Service\QuickParse.fsi +Service\QuickParse.fs +Service\FSharpCheckerResults.fsi +Service\FSharpCheckerResults.fs +Service\service.fsi +Service\service.fs +Service\ServiceInterfaceStubGenerator.fsi +Service\ServiceInterfaceStubGenerator.fs +Service\ServiceStructure.fsi +Service\ServiceStructure.fs +Service\ServiceAnalysis.fsi +Service\ServiceAnalysis.fs +Interactive\FSharpInteractiveServer.fsi +Interactive\FSharpInteractiveServer.fs +Interactive\ControlledExecution.fs +Interactive\fsi.fsi +Interactive\fsi.fs +Legacy\LegacyHostedCompilerForTesting.fs diff --git a/src/Compiler/SyntaxTree/PrettyNaming.fs b/src/Compiler/SyntaxTree/PrettyNaming.fs index f78f742a03f..55721ae6222 100755 --- a/src/Compiler/SyntaxTree/PrettyNaming.fs +++ b/src/Compiler/SyntaxTree/PrettyNaming.fs @@ -10,7 +10,6 @@ open System.Collections.Concurrent open System.Globalization open System.Text -open FSharp.Compiler.AbstractIL open Internal.Utilities.Library open FSharp.Compiler.Text open FSharp.Compiler.Text.Layout diff --git a/src/Compiler/SyntaxTree/SyntaxTree.fs b/src/Compiler/SyntaxTree/SyntaxTree.fs index e9eb8bdfac3..230946c5f4f 100644 --- a/src/Compiler/SyntaxTree/SyntaxTree.fs +++ b/src/Compiler/SyntaxTree/SyntaxTree.fs @@ -4,7 +4,7 @@ namespace rec FSharp.Compiler.Syntax open System open System.Diagnostics -open Internal.Utilities.Library +// open Internal.Utilities.Library open FSharp.Compiler.Syntax open FSharp.Compiler.Text open FSharp.Compiler.Text.Range diff --git a/src/Compiler/SyntaxTree/SyntaxTreeOps.fs b/src/Compiler/SyntaxTree/SyntaxTreeOps.fs index f25b7abb37f..c96d040c511 100644 --- a/src/Compiler/SyntaxTree/SyntaxTreeOps.fs +++ b/src/Compiler/SyntaxTree/SyntaxTreeOps.fs @@ -65,7 +65,7 @@ let mkSynCompGenSimplePatVar id = let (|SynSingleIdent|_|) x = match x with - | SynLongIdent ([ id ], _, _) -> Some id + | SynLongIdent (id = [ id ]) -> Some id | _ -> None /// Match a long identifier, including the case for single identifiers which gets a more optimized node in the syntax tree. @@ -105,13 +105,13 @@ let (|SynPipeRight|_|) input = let (|SynPipeRight2|_|) input = match input with - | SynBinOp (synId, SynExpr.Paren (SynExpr.Tuple (false, [ x1a; x1b ], _, _), _, _, _), x2) when synId.idText = "op_PipeRight2" -> + | SynBinOp (synId, SynExpr.Paren (expr = SynExpr.Tuple (isStruct = false; exprs = [ x1a; x1b ])), x2) when synId.idText = "op_PipeRight2" -> Some(x1a, x1b, x2) | _ -> None let (|SynPipeRight3|_|) input = match input with - | SynBinOp (synId, SynExpr.Paren (SynExpr.Tuple (false, [ x1a; x1b; x1c ], _, _), _, _, _), x2) when synId.idText = "op_PipeRight3" -> + | SynBinOp (synId, SynExpr.Paren (expr = SynExpr.Tuple (isStruct = false; exprs = [ x1a; x1b; x1c ])), x2) when synId.idText = "op_PipeRight3" -> Some(x1a, x1b, x1c, x2) | _ -> None @@ -138,7 +138,7 @@ let rec IsControlFlowExpression e = | SynExpr.LetOrUse _ | SynExpr.Sequential _ // Treat "ident { ... }" as a control flow expression - | SynExpr.App (_, _, SynExpr.Ident _, SynExpr.ComputationExpr _, _) + | SynExpr.App (funcExpr = SynExpr.Ident _; argExpr = SynExpr.ComputationExpr _) | SynExpr.IfThenElse _ | SynExpr.LetOrUseBang _ | SynExpr.Match _ @@ -147,7 +147,7 @@ let rec IsControlFlowExpression e = | SynExpr.For _ | SynExpr.ForEach _ | SynExpr.While _ -> true - | SynExpr.Typed (e, _, _) -> IsControlFlowExpression e + | SynExpr.Typed (expr = e) -> IsControlFlowExpression e | _ -> false // The syntactic criteria for when a debug point for a 'let' is extended to include @@ -257,7 +257,7 @@ let rec SimplePatOfPat (synArgNameGenerator: SynArgNameGenerator) p = let item = mkSynIdGetWithAlt m id altNameRefCell false, altNameRefCell, id, item | SynPat.Named (SynIdent (ident, _), _, _, _) - | SynPat.As (_, SynPat.Named (SynIdent (ident, _), _, _, _), _) -> + | SynPat.As (rhsPat = SynPat.Named (ident = SynIdent (ident, _))) -> // named pats should be referred to as their name in docs, tooltips, etc. let item = mkSynIdGet m ident.idText false, None, ident, item @@ -423,11 +423,11 @@ let mkSynQMarkSet m a b c = mkSynTrifix m qmarkSet a b c let mkSynDotParenGet mLhs mDot a b = match b with - | SynExpr.Tuple (false, [ _; _ ], _, _) -> + | SynExpr.Tuple (isStruct = false; exprs = [ _; _ ]) -> errorR (Deprecated(FSComp.SR.astDeprecatedIndexerNotation (), mLhs)) SynExpr.Const(SynConst.Unit, mLhs) - | SynExpr.Tuple (false, [ _; _; _ ], _, _) -> + | SynExpr.Tuple (isStruct = false; exprs = [ _; _; _ ]) -> errorR (Deprecated(FSComp.SR.astDeprecatedIndexerNotation (), mLhs)) SynExpr.Const(SynConst.Unit, mLhs) @@ -447,13 +447,13 @@ let mkSynAssign (l: SynExpr) (r: SynExpr) = match l with //| SynExpr.Paren (l2, m2) -> mkSynAssign m l2 r | LongOrSingleIdent (false, v, None, _) -> SynExpr.LongIdentSet(v, r, m) - | SynExpr.DotGet (e, _, v, _) -> SynExpr.DotSet(e, v, r, m) + | SynExpr.DotGet (expr = e; longDotId = v) -> SynExpr.DotSet(e, v, r, m) | SynExpr.DotIndexedGet (e1, e2, mDot, mLeft) -> SynExpr.DotIndexedSet(e1, e2, r, mLeft, mDot, m) | SynExpr.LibraryOnlyUnionCaseFieldGet (x, y, z, _) -> SynExpr.LibraryOnlyUnionCaseFieldSet(x, y, z, r, m) - | SynExpr.App (_, _, SynExpr.App (_, _, SingleIdent nm, a, _), b, _) when nm.idText = opNameQMark -> mkSynQMarkSet m a b r - | SynExpr.App (_, _, SynExpr.App (_, _, SingleIdent nm, a, _), b, _) when nm.idText = opNameParenGet -> mkSynDotParenSet m a b r - | SynExpr.App (_, _, SynExpr.LongIdent (false, v, None, _), x, _) -> SynExpr.NamedIndexedPropertySet(v, x, r, m) - | SynExpr.App (_, _, SynExpr.DotGet (e, _, v, _), x, _) -> SynExpr.DotNamedIndexedPropertySet(e, v, x, r, m) + | SynExpr.App (funcExpr = SynExpr.App (funcExpr = SingleIdent nm; argExpr = a); argExpr = b) when nm.idText = opNameQMark -> mkSynQMarkSet m a b r + | SynExpr.App (funcExpr = SynExpr.App (funcExpr = SingleIdent nm; argExpr = a); argExpr = b) when nm.idText = opNameParenGet -> mkSynDotParenSet m a b r + | SynExpr.App (funcExpr = SynExpr.LongIdent (false, v, None, _); argExpr = x) -> SynExpr.NamedIndexedPropertySet(v, x, r, m) + | SynExpr.App (funcExpr = SynExpr.DotGet (expr = e; longDotId = v); argExpr = x) -> SynExpr.DotNamedIndexedPropertySet(e, v, x, r, m) | l -> SynExpr.Set(l, r, m) let mkSynDot mDot m l (SynIdent (r, rTrivia)) = @@ -566,13 +566,13 @@ module SynInfo = let AritiesOfArgs (SynValInfo (args, _)) = List.map List.length args /// Get the argument attributes from the syntactic information for an argument. - let AttribsOfArgData (SynArgInfo (Attributes attribs, _, _)) = attribs + let AttribsOfArgData (SynArgInfo (attributes = Attributes attribs)) = attribs /// Infer the syntactic argument info for a single argument from a simple pattern. let rec InferSynArgInfoFromSimplePat attribs p = match p with - | SynSimplePat.Id (nm, _, isCompGen, _, isOpt, _) -> SynArgInfo(attribs, isOpt, (if isCompGen then None else Some nm)) - | SynSimplePat.Typed (a, _, _) -> InferSynArgInfoFromSimplePat attribs a + | SynSimplePat.Id (ident = nm; isCompilerGenerated = isCompGen; isOptional = isOpt) -> SynArgInfo(attribs, isOpt, (if isCompGen then None else Some nm)) + | SynSimplePat.Typed (pat = a) -> InferSynArgInfoFromSimplePat attribs a | SynSimplePat.Attrib (a, attribs2, _) -> InferSynArgInfoFromSimplePat (attribs @ attribs2) a /// Infer the syntactic argument info for one or more arguments one or more simple patterns. @@ -802,40 +802,40 @@ let rec synExprContainsError inpExpr = | SynExpr.Const _ | SynExpr.Dynamic _ -> false - | SynExpr.TypeTest (e, _, _) - | SynExpr.Upcast (e, _, _) - | SynExpr.AddressOf (_, e, _, _) - | SynExpr.ComputationExpr (_, e, _) - | SynExpr.ArrayOrListComputed (_, e, _) - | SynExpr.Typed (e, _, _) - | SynExpr.Do (e, _) - | SynExpr.Assert (e, _) - | SynExpr.DotGet (e, _, _, _) - | SynExpr.LongIdentSet (_, e, _) - | SynExpr.New (_, _, e, _) - | SynExpr.TypeApp (e, _, _, _, _, _, _) - | SynExpr.LibraryOnlyUnionCaseFieldGet (e, _, _, _) - | SynExpr.Downcast (e, _, _) - | SynExpr.InferredUpcast (e, _) - | SynExpr.InferredDowncast (e, _) - | SynExpr.Lazy (e, _) - | SynExpr.TraitCall (_, _, e, _) - | SynExpr.YieldOrReturn (_, e, _) - | SynExpr.YieldOrReturnFrom (_, e, _) - | SynExpr.DoBang (e, _) - | SynExpr.Fixed (e, _) - | SynExpr.DebugPoint (_, _, e) - | SynExpr.Paren (e, _, _, _) -> walkExpr e - - | SynExpr.NamedIndexedPropertySet (_, e1, e2, _) - | SynExpr.DotSet (e1, _, e2, _) - | SynExpr.Set (e1, e2, _) - | SynExpr.LibraryOnlyUnionCaseFieldSet (e1, _, _, e2, _) - | SynExpr.JoinIn (e1, _, e2, _) - | SynExpr.App (_, _, e1, e2, _) -> walkExpr e1 || walkExpr e2 - - | SynExpr.ArrayOrList (_, es, _) - | SynExpr.Tuple (_, es, _, _) -> walkExprs es + | SynExpr.TypeTest (expr = e) + | SynExpr.Upcast (expr = e) + | SynExpr.AddressOf (expr = e) + | SynExpr.ComputationExpr (expr = e) + | SynExpr.ArrayOrListComputed (expr = e) + | SynExpr.Typed (expr = e) + | SynExpr.Do (expr = e) + | SynExpr.Assert (expr = e) + | SynExpr.DotGet (expr = e) + | SynExpr.LongIdentSet (expr = e) + | SynExpr.New (expr = e) + | SynExpr.TypeApp (expr = e) + | SynExpr.LibraryOnlyUnionCaseFieldGet (expr = e) + | SynExpr.Downcast (expr = e) + | SynExpr.InferredUpcast (expr = e) + | SynExpr.InferredDowncast (expr = e) + | SynExpr.Lazy (expr = e) + | SynExpr.TraitCall (argExpr = e) + | SynExpr.YieldOrReturn (expr = e) + | SynExpr.YieldOrReturnFrom (expr = e) + | SynExpr.DoBang (expr = e) + | SynExpr.Fixed (expr = e) + | SynExpr.DebugPoint (innerExpr = e) + | SynExpr.Paren (expr = e) -> walkExpr e + + | SynExpr.NamedIndexedPropertySet (expr1 = e1; expr2 = e2) + | SynExpr.DotSet (targetExpr = e1; rhsExpr = e2) + | SynExpr.Set (targetExpr = e1; rhsExpr = e2) + | SynExpr.LibraryOnlyUnionCaseFieldSet (expr = e1; rhsExpr = e2) + | SynExpr.JoinIn (lhsExpr = e1; rhsExpr = e2) + | SynExpr.App (funcExpr = e1; argExpr = e2) -> walkExpr e1 || walkExpr e2 + + | SynExpr.ArrayOrList (exprs = es) + | SynExpr.Tuple (exprs = es) -> walkExprs es | SynExpr.AnonRecd (copyInfo = origExpr; recordFields = flds) -> (match origExpr with @@ -861,12 +861,12 @@ let rec synExprContainsError inpExpr = walkBinds bs || walkBinds binds - | SynExpr.ForEach (_, _, _, _, _, e1, e2, _) - | SynExpr.While (_, e1, e2, _) -> walkExpr e1 || walkExpr e2 + | SynExpr.ForEach (enumExpr = e1; bodyExpr = e2) + | SynExpr.While (whileExpr = e1; doExpr = e2) -> walkExpr e1 || walkExpr e2 | SynExpr.For (identBody = e1; toBody = e2; doBody = e3) -> walkExpr e1 || walkExpr e2 || walkExpr e3 - | SynExpr.MatchLambda (_, _, cl, _, _) -> walkMatchClauses cl + | SynExpr.MatchLambda (matchClauses = cl) -> walkMatchClauses cl | SynExpr.Lambda (body = e) -> walkExpr e @@ -880,7 +880,7 @@ let rec synExprContainsError inpExpr = | SynExpr.Sequential (_, _, e1, e2, _) -> walkExpr e1 || walkExpr e2 - | SynExpr.SequentialOrImplicitYield (_, e1, e2, _, _) -> walkExpr e1 || walkExpr e2 + | SynExpr.SequentialOrImplicitYield (expr1 = e1; expr2 = e2) -> walkExpr e1 || walkExpr e2 | SynExpr.IfThenElse (ifExpr = e1; thenExpr = e2; elseExpr = e3opt) -> walkExpr e1 || walkExpr e2 || walkExprOpt e3opt diff --git a/src/Compiler/SyntaxTree/XmlDoc.fs b/src/Compiler/SyntaxTree/XmlDoc.fs index e5aa1b70d00..ee92eae9a02 100644 --- a/src/Compiler/SyntaxTree/XmlDoc.fs +++ b/src/Compiler/SyntaxTree/XmlDoc.fs @@ -13,7 +13,6 @@ open FSharp.Compiler.DiagnosticsLogger open FSharp.Compiler.IO open FSharp.Compiler.Text open FSharp.Compiler.Text.Range -open FSharp.Compiler.AbstractIL.IL /// Represents collected XmlDoc lines [] diff --git a/src/Compiler/SyntaxTree/XmlDoc.fsi b/src/Compiler/SyntaxTree/XmlDoc.fsi index 939a1b238e5..33b168786cc 100644 --- a/src/Compiler/SyntaxTree/XmlDoc.fsi +++ b/src/Compiler/SyntaxTree/XmlDoc.fsi @@ -3,7 +3,6 @@ namespace FSharp.Compiler.Xml open FSharp.Compiler.Text -open FSharp.Compiler.AbstractIL.IL /// Represents collected XmlDoc lines [] diff --git a/src/Compiler/Trimmed.rsp b/src/Compiler/Trimmed.rsp new file mode 100644 index 00000000000..a981f6d5be2 --- /dev/null +++ b/src/Compiler/Trimmed.rsp @@ -0,0 +1,226 @@ +-o:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSharp.Compiler.Service.dll +-g +--nologo +--debug:embedded +--noframework +--define:TRACE +--define:COMPILER +--define:FSHARPCORE_USE_PACKAGE +--define:DEBUG +--define:NETSTANDARD +--define:FX_NO_WINFORMS +--define:Debug +--define:NETSTANDARD +--define:NETSTANDARD2_0 +--define:NETSTANDARD1_0_OR_GREATER +--define:NETSTANDARD1_1_OR_GREATER +--define:NETSTANDARD1_2_OR_GREATER +--define:NETSTANDARD1_3_OR_GREATER +--define:NETSTANDARD1_4_OR_GREATER +--define:NETSTANDARD1_5_OR_GREATER +--define:NETSTANDARD1_6_OR_GREATER +--define:NETSTANDARD2_0_OR_GREATER +--doc:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSharp.Compiler.Service.xml +--optimize- +--resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSComp.resources +--resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSIstrings.resources +--resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\UtilsStrings.resources +--resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSStrings.resources +-r:C:\Users\nojaf\.nuget\packages\fsharp.core\7.0.0\lib\netstandard2.0\FSharp.Core.dll +-r:C:\Users\nojaf\Projects\fsharp\artifacts\bin\FSharp.DependencyManager.Nuget\Debug\netstandard2.0\FSharp.DependencyManager.Nuget.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\Microsoft.Win32.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\mscorlib.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\netstandard.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.AppContext.dll +-r:C:\Users\nojaf\.nuget\packages\system.buffers\4.5.1\ref\netstandard2.0\System.Buffers.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Concurrent.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.dll +-r:C:\Users\nojaf\.nuget\packages\system.collections.immutable\6.0.0\lib\netstandard2.0\System.Collections.Immutable.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.NonGeneric.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Specialized.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Composition.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.EventBasedAsync.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.TypeConverter.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Console.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Core.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.Common.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Contracts.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Debug.dll +-r:C:\Users\nojaf\.nuget\packages\system.diagnostics.diagnosticsource\7.0.0\lib\netstandard2.0\System.Diagnostics.DiagnosticSource.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.FileVersionInfo.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Process.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.StackTrace.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TextWriterTraceListener.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tools.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TraceSource.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tracing.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Dynamic.Runtime.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Calendars.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Extensions.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.FileSystem.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.ZipFile.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.DriveInfo.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Watcher.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.IsolatedStorage.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.MemoryMappedFiles.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Pipes.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.UnmanagedMemoryStream.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Expressions.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Parallel.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Queryable.dll +-r:C:\Users\nojaf\.nuget\packages\system.memory\4.5.5\lib\netstandard2.0\System.Memory.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Http.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NameResolution.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NetworkInformation.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Ping.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Requests.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Security.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Sockets.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebHeaderCollection.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.Client.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Numerics.dll +-r:C:\Users\nojaf\.nuget\packages\system.numerics.vectors\4.4.0\ref\netstandard2.0\System.Numerics.Vectors.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ObjectModel.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.dll +-r:C:\Users\nojaf\.nuget\packages\system.reflection.emit\4.7.0\ref\netstandard2.0\System.Reflection.Emit.dll +-r:C:\Users\nojaf\.nuget\packages\system.reflection.emit.ilgeneration\4.7.0\ref\netstandard2.0\System.Reflection.Emit.ILGeneration.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Extensions.dll +-r:C:\Users\nojaf\.nuget\packages\system.reflection.metadata\6.0.1\lib\netstandard2.0\System.Reflection.Metadata.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Reader.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.ResourceManager.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Writer.dll +-r:C:\Users\nojaf\.nuget\packages\system.runtime.compilerservices.unsafe\6.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.CompilerServices.VisualC.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Extensions.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Handles.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.RuntimeInformation.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Numerics.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Formatters.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Json.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Xml.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Claims.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Algorithms.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Csp.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Encoding.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Primitives.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.X509Certificates.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Principal.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.SecureString.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ServiceModel.Web.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.Extensions.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.RegularExpressions.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Overlapped.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.Parallel.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Thread.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.ThreadPool.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Timer.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Transactions.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ValueTuple.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Web.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Windows.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Linq.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.ReaderWriter.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Serialization.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XDocument.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlDocument.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlSerializer.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.dll +-r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.XDocument.dll +--target:library +--nowarn:44,57,75,1204,NU5125,IL2121 +--warn:3 +--warnaserror:3239,1182,0025 +--fullpaths +--flaterrors +--highentropyva+ +--targetprofile:netstandard +--nocopyfsharpcore +--deterministic- +--simpleresolution +--nowarn:3384 +--nowarn:75 +--extraoptimizationloops:1 +--warnon:1182 +--warnon:3218 +--warnon:3390 +--simpleresolution +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSComp.fsi +C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSComp.fs +Utilities\Activity.fsi +Utilities\Activity.fs +Utilities\sformat.fsi +Utilities\sformat.fs +Utilities\TaggedCollections.fsi +Utilities\TaggedCollections.fs +Utilities\illib.fsi +Utilities\illib.fs +Utilities\FileSystem.fsi +Utilities\FileSystem.fs +Utilities\zmap.fsi +Utilities\zmap.fs +Utilities\zset.fsi +Utilities\zset.fs +Utilities\XmlAdapters.fsi +Utilities\XmlAdapters.fs +Utilities\InternalCollections.fsi +Utilities\InternalCollections.fs +Utilities\lib.fsi +Utilities\lib.fs +Utilities\range.fsi +Utilities\range.fs +Facilities\LanguageFeatures.fsi +Facilities\LanguageFeatures.fs +Facilities\DiagnosticOptions.fsi +Facilities\DiagnosticOptions.fs +Facilities\DiagnosticsLogger.fsi +Facilities\DiagnosticsLogger.fs +SyntaxTree\PrettyNaming.fsi +SyntaxTree\PrettyNaming.fs +SyntaxTree\XmlDoc.fsi +SyntaxTree\XmlDoc.fs +SyntaxTree\SyntaxTrivia.fsi +SyntaxTree\SyntaxTrivia.fs +SyntaxTree\SyntaxTree.fsi +SyntaxTree\SyntaxTree.fs +SyntaxTree\SyntaxTreeOps.fsi +SyntaxTree\SyntaxTreeOps.fs +Driver\GraphChecking\Continuation.fsi +Driver\GraphChecking\Continuation.fs +Driver\GraphChecking\Types.fsi +Driver\GraphChecking\Types.fs +Driver\GraphChecking\Graph.fsi +Driver\GraphChecking\Graph.fs +Driver\GraphChecking\TrieMapping.fsi +Driver\GraphChecking\TrieMapping.fs +Driver\GraphChecking\FileContentMapping.fsi +Driver\GraphChecking\FileContentMapping.fs +Driver\GraphChecking\DependencyResolution.fsi +Driver\GraphChecking\DependencyResolution.fs +Driver\GraphChecking\GraphProcessing.fsi +Driver\GraphChecking\GraphProcessing.fs +Driver\GraphChecking\TypeCheckingGraphProcessing.fsi +Driver\GraphChecking\TypeCheckingGraphProcessing.fs diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/Graph/CompilationFromCmdlineArgsTests.fs b/tests/FSharp.Compiler.ComponentTests/TypeChecks/Graph/CompilationFromCmdlineArgsTests.fs index 4525d7286f2..63b18a33ab7 100644 --- a/tests/FSharp.Compiler.ComponentTests/TypeChecks/Graph/CompilationFromCmdlineArgsTests.fs +++ b/tests/FSharp.Compiler.ComponentTests/TypeChecks/Graph/CompilationFromCmdlineArgsTests.fs @@ -13,10 +13,12 @@ module CompilationFromCmdlineArgsTests = // The path needs to be absolute. let localProjects: string list = [ - @"C:\Projects\fantomas\src\Fantomas.Core\Fantomas.Core.args.txt" - @"C:\Projects\FsAutoComplete\src\FsAutoComplete\FsAutoComplete.args.txt" - @"C:\Projects\fsharp\src\Compiler\FSharp.Compiler.Service.args.txt" - @"C:\Projects\fsharp\tests\FSharp.Compiler.ComponentTests\FSharp.Compiler.ComponentTests.args.txt" + // @"C:\Projects\fantomas\src\Fantomas.Core\Fantomas.Core.args.txt" + // @"C:\Projects\FsAutoComplete\src\FsAutoComplete\FsAutoComplete.args.txt" + // @"C:\Projects\fsharp\src\Compiler\FSharp.Compiler.Service.args.txt" + // @"C:\Projects\fsharp\tests\FSharp.Compiler.ComponentTests\FSharp.Compiler.ComponentTests.args.txt" + @"C:\Users\nojaf\Projects\fsharp\src\Compiler\FSharp.Compiler.Service.rsp" + @"C:\Users\nojaf\Projects\fsharp\src\Compiler\Trimmed.rsp" ] let checker = FSharpChecker.Create() @@ -36,6 +38,7 @@ module CompilationFromCmdlineArgsTests = if not (Array.contains "--times" argsFromFile) then yield "--times" yield! methodOptions method + yield "--deterministic-" |] let diagnostics, exitCode = checker.Compile(args) |> Async.RunSynchronously From 1d8aa139e2e200c5f54e91fe344e4b98323fe1c4 Mon Sep 17 00:00:00 2001 From: nojaf Date: Mon, 26 Jun 2023 11:50:53 +0200 Subject: [PATCH 2/6] Sort resultsToAdd when folding the firstState. --- .../TypeCheckingGraphProcessing.fs | 22 +- .../TypeCheckingGraphProcessing.fsi | 5 +- src/Compiler/Driver/GraphChecking/Types.fs | 2 +- src/Compiler/Driver/GraphChecking/Types.fsi | 2 +- src/Compiler/Driver/ParseAndCheckInputs.fs | 156 +++++++----- src/Compiler/Trimmed.rsp | 226 ------------------ 6 files changed, 114 insertions(+), 299 deletions(-) delete mode 100644 src/Compiler/Trimmed.rsp diff --git a/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fs b/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fs index 7f184a58880..52318982d2d 100644 --- a/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fs +++ b/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fs @@ -14,14 +14,16 @@ open System.Threading /// Direct dependencies of a node /// Transitive dependencies of a node /// A way to fold a single result into existing state +/// ... /// /// Similar to 'processFileGraph', this function is generic yet specific to the type-checking process. /// let combineResults (emptyState: 'State) - (deps: ProcessedNode<'Item, 'State * Finisher<'State, 'FinalFileResult>>[]) - (transitiveDeps: ProcessedNode<'Item, 'State * Finisher<'State, 'FinalFileResult>>[]) - (folder: 'State -> Finisher<'State, 'FinalFileResult> -> 'State) + (deps: ProcessedNode<'Item, 'State * Finisher<'ChosenItem, 'State, 'FinalFileResult>>[]) + (transitiveDeps: ProcessedNode<'Item, 'State * Finisher<'ChosenItem, 'State, 'FinalFileResult>>[]) + (sortResultsToAdd: 'Item -> 'Item -> int) + (folder: 'State -> Finisher<'ChosenItem, 'State, 'FinalFileResult> -> 'State) : 'State = match deps with | [||] -> emptyState @@ -49,6 +51,7 @@ let combineResults transitiveDeps |> Array.filter (fun dep -> itemsPresent.Contains dep.Info.Item = false) |> Array.distinctBy (fun dep -> dep.Info.Item) + |> Array.sortWith (fun a b -> sortResultsToAdd a.Info.Item b.Info.Item) |> Array.map (fun dep -> dep.Result |> snd) // Fold results not already included and produce the final state @@ -63,8 +66,9 @@ let combineResults /// let processTypeCheckingGraph<'Item, 'ChosenItem, 'State, 'FinalFileResult when 'Item: equality and 'Item: comparison> (graph: Graph<'Item>) - (work: 'Item -> 'State -> Finisher<'State, 'FinalFileResult>) - (folder: 'State -> Finisher<'State, 'FinalFileResult> -> 'FinalFileResult * 'State) + (work: 'Item -> 'State -> Finisher<'ChosenItem, 'State, 'FinalFileResult>) + (sortResultsToAdd: 'Item -> 'Item -> int) + (folder: 'State -> Finisher<'ChosenItem, 'State, 'FinalFileResult> -> 'FinalFileResult * 'State) // Decides whether a result for an item should be included in the final state, and how to map the item if it should. (finalStateChooser: 'Item -> 'ChosenItem option) (emptyState: 'State) @@ -72,9 +76,9 @@ let processTypeCheckingGraph<'Item, 'ChosenItem, 'State, 'FinalFileResult when ' : ('ChosenItem * 'FinalFileResult) list * 'State = let workWrapper - (getProcessedNode: 'Item -> ProcessedNode<'Item, 'State * Finisher<'State, 'FinalFileResult>>) + (getProcessedNode: 'Item -> ProcessedNode<'Item, 'State * Finisher<'ChosenItem, 'State, 'FinalFileResult>>) (node: NodeInfo<'Item>) - : 'State * Finisher<'State, 'FinalFileResult> = + : 'State * Finisher<'ChosenItem, 'State, 'FinalFileResult> = let folder x y = folder x y |> snd let deps = node.Deps |> Array.except [| node.Item |] |> Array.map getProcessedNode @@ -83,7 +87,9 @@ let processTypeCheckingGraph<'Item, 'ChosenItem, 'State, 'FinalFileResult when ' |> Array.except [| node.Item |] |> Array.map getProcessedNode - let inputState = combineResults emptyState deps transitiveDeps folder + let inputState = + combineResults emptyState deps transitiveDeps sortResultsToAdd folder + let singleRes = work node.Item inputState let state = folder inputState singleRes state, singleRes diff --git a/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fsi b/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fsi index 5db01dc3307..07f1d003ffb 100644 --- a/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fsi +++ b/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fsi @@ -9,8 +9,9 @@ open System.Threading /// val processTypeCheckingGraph<'Item, 'ChosenItem, 'State, 'FinalFileResult when 'Item: equality and 'Item: comparison> : graph: Graph<'Item> -> - work: ('Item -> 'State -> Finisher<'State, 'FinalFileResult>) -> - folder: ('State -> Finisher<'State, 'FinalFileResult> -> 'FinalFileResult * 'State) -> + work: ('Item -> 'State -> Finisher<'ChosenItem, 'State, 'FinalFileResult>) -> + sortResultsToAdd: ('Item -> 'Item -> int) -> + folder: ('State -> Finisher<'ChosenItem, 'State, 'FinalFileResult> -> 'FinalFileResult * 'State) -> finalStateChooser: ('Item -> 'ChosenItem option) -> emptyState: 'State -> ct: CancellationToken -> diff --git a/src/Compiler/Driver/GraphChecking/Types.fs b/src/Compiler/Driver/GraphChecking/Types.fs index c0e8e0f84b1..04359519b95 100644 --- a/src/Compiler/Driver/GraphChecking/Types.fs +++ b/src/Compiler/Driver/GraphChecking/Types.fs @@ -167,4 +167,4 @@ type internal FilePairMap(files: FileInProject array) = member x.IsSignature(index: FileIndex) = Map.containsKey index sigToImpl /// Callback that returns a previously calculated 'Result and updates 'State accordingly. -type internal Finisher<'State, 'Result> = delegate of 'State -> 'Result * 'State +type internal Finisher<'Node, 'State, 'Result> = Finisher of node: 'Node * finisher: ('State -> 'Result * 'State) diff --git a/src/Compiler/Driver/GraphChecking/Types.fsi b/src/Compiler/Driver/GraphChecking/Types.fsi index 7d0ba9bbdd5..67403d51d98 100644 --- a/src/Compiler/Driver/GraphChecking/Types.fsi +++ b/src/Compiler/Driver/GraphChecking/Types.fsi @@ -114,4 +114,4 @@ type internal FilePairMap = member IsSignature: index: FileIndex -> bool /// Callback that returns a previously calculated 'Result and updates 'State accordingly. -type internal Finisher<'State, 'Result> = delegate of 'State -> 'Result * 'State +type internal Finisher<'Node, 'State, 'Result> = Finisher of node: 'Node * finisher: ('State -> 'Result * 'State) diff --git a/src/Compiler/Driver/ParseAndCheckInputs.fs b/src/Compiler/Driver/ParseAndCheckInputs.fs index dfdbdf682d4..e85f4db1cc0 100644 --- a/src/Compiler/Driver/ParseAndCheckInputs.fs +++ b/src/Compiler/Driver/ParseAndCheckInputs.fs @@ -1472,11 +1472,12 @@ type NodeToTypeCheck = /// Even though the actual implementation file was not type-checked. | ArtificialImplFile of signatureFileIndex: FileIndex -let folder (state: State) (finisher: Finisher) : FinalFileResult * State = finisher.Invoke(state) +let folder (state: State) (Finisher (finisher = finisher)) : FinalFileResult * State = finisher state /// Typecheck a single file (or interactive entry into F# Interactive) /// a callback functions that takes a `TcState` and will add the checked result to it. let CheckOneInputWithCallback + (idx: int) ((checkForErrors, tcConfig: TcConfig, tcImports: TcImports, @@ -1486,7 +1487,7 @@ let CheckOneInputWithCallback tcState: TcState, inp: ParsedInput, _skipImplIfSigExists: bool): (unit -> bool) * TcConfig * TcImports * TcGlobals * LongIdent option * TcResultsSink * TcState * ParsedInput * bool) - : Cancellable> = + : Cancellable> = cancellable { try CheckSimulateException tcConfig @@ -1535,25 +1536,33 @@ let CheckOneInputWithCallback TcOpenModuleOrNamespaceDecl tcSink tcGlobals amap m tcEnv (prefixPath, m) return - Finisher(fun tcState -> - let rootSigs = Zmap.add qualNameOfFile sigFileType tcState.tcsRootSigs + Finisher( + idx, + (fun tcState -> + if tcState.tcsRootSigs.ContainsKey qualNameOfFile then + printfn $"{qualNameOfFile} already part of root sigs?" + () - let tcSigEnv = - AddLocalRootModuleOrNamespace TcResultsSink.NoSink tcGlobals amap m tcState.tcsTcSigEnv sigFileType + let rootSigs = Zmap.add qualNameOfFile sigFileType tcState.tcsRootSigs - // Add the signature to the signature env (unless it had an explicit signature) - let ccuSigForFile = CombineCcuContentFragments [ sigFileType; tcState.tcsCcuSig ] + let tcSigEnv = + AddLocalRootModuleOrNamespace TcResultsSink.NoSink tcGlobals amap m tcState.tcsTcSigEnv sigFileType - let partialResult = tcEnv, EmptyTopAttrs, None, ccuSigForFile + // Add the signature to the signature env (unless it had an explicit signature) + let ccuSigForFile = CombineCcuContentFragments [ sigFileType; tcState.tcsCcuSig ] - let tcState = - { tcState with - tcsTcSigEnv = tcSigEnv - tcsRootSigs = rootSigs - tcsCreatesGeneratedProvidedTypes = tcState.tcsCreatesGeneratedProvidedTypes || createsGeneratedProvidedTypes - } + let partialResult = tcEnv, EmptyTopAttrs, None, ccuSigForFile - partialResult, tcState) + let tcState = + { tcState with + tcsTcSigEnv = tcSigEnv + tcsRootSigs = rootSigs + tcsCreatesGeneratedProvidedTypes = + tcState.tcsCreatesGeneratedProvidedTypes || createsGeneratedProvidedTypes + } + + partialResult, tcState) + ) | ParsedInput.ImplFile file -> let qualNameOfFile = file.QualifiedName @@ -1579,29 +1588,32 @@ let CheckOneInputWithCallback ) return - Finisher(fun tcState -> - // Check if we've already seen an implementation for this fragment - if Zset.contains qualNameOfFile tcState.tcsRootImpls then - errorR (Error(FSComp.SR.buildImplementationAlreadyGiven (qualNameOfFile.Text), m)) - - let ccuSigForFile, fsTcState = - AddCheckResultsToTcState - (tcGlobals, amap, false, prefixPathOpt, tcSink, tcState.tcsTcImplEnv, qualNameOfFile, implFile.Signature) - tcState - - let partialResult = tcEnvAtEnd, topAttrs, Some implFile, ccuSigForFile - - let tcState = - { fsTcState with - tcsCreatesGeneratedProvidedTypes = - fsTcState.tcsCreatesGeneratedProvidedTypes || createsGeneratedProvidedTypes - } - - partialResult, tcState) + Finisher( + idx, + (fun tcState -> + // Check if we've already seen an implementation for this fragment + if Zset.contains qualNameOfFile tcState.tcsRootImpls then + errorR (Error(FSComp.SR.buildImplementationAlreadyGiven (qualNameOfFile.Text), m)) + + let ccuSigForFile, fsTcState = + AddCheckResultsToTcState + (tcGlobals, amap, false, prefixPathOpt, tcSink, tcState.tcsTcImplEnv, qualNameOfFile, implFile.Signature) + tcState + + let partialResult = tcEnvAtEnd, topAttrs, Some implFile, ccuSigForFile + + let tcState = + { fsTcState with + tcsCreatesGeneratedProvidedTypes = + fsTcState.tcsCreatesGeneratedProvidedTypes || createsGeneratedProvidedTypes + } + + partialResult, tcState) + ) with e -> errorRecovery e range0 - return Finisher(fun tcState -> (tcState.TcEnvFromSignatures, EmptyTopAttrs, None, tcState.tcsCcuSig), tcState) + return Finisher(idx, (fun tcState -> (tcState.TcEnvFromSignatures, EmptyTopAttrs, None, tcState.tcsCcuSig), tcState)) } let AddSignatureResultToTcImplEnv (tcImports: TcImports, tcGlobals, prefixPathOpt, tcSink, tcState, input: ParsedInput) = @@ -1711,38 +1723,52 @@ let CheckMultipleInputsUsingGraphMode // somewhere in the files processed prior to each one, or in the processing of this particular file. let priorErrors = checkForErrors () - let processArtificialImplFile (input: ParsedInput) ((currentTcState, _currentPriorErrors): State) : Finisher = - Finisher(fun (state: State) -> - let tcState, currentPriorErrors = state - - let f = - // Retrieve the type-checked signature information and add it to the TcEnvFromImpls. - AddSignatureResultToTcImplEnv(tcImports, tcGlobals, prefixPathOpt, TcResultsSink.NoSink, currentTcState, input) - - // The `partialResult` will be excluded at the end of `GraphProcessing.processGraph`. - // The important thing is that `nextTcState` will populated the necessary information to TcEnvFromImpls. - let partialResult, nextTcState = f tcState - partialResult, (nextTcState, currentPriorErrors)) + let processArtificialImplFile + (idx: int) + (input: ParsedInput) + ((currentTcState, _currentPriorErrors): State) + : Finisher = + Finisher( + idx, + (fun (state: State) -> + let tcState, currentPriorErrors = state + + let f = + // Retrieve the type-checked signature information and add it to the TcEnvFromImpls. + AddSignatureResultToTcImplEnv(tcImports, tcGlobals, prefixPathOpt, TcResultsSink.NoSink, currentTcState, input) + + // The `partialResult` will be excluded at the end of `GraphProcessing.processGraph`. + // The important thing is that `nextTcState` will populated the necessary information to TcEnvFromImpls. + let partialResult, nextTcState = f tcState + partialResult, (nextTcState, currentPriorErrors)) + ) let processFile + (idx: int) ((input, logger): ParsedInput * DiagnosticsLogger) ((currentTcState, _currentPriorErrors): State) - : Finisher = + : Finisher = use _ = UseDiagnosticsLogger logger let checkForErrors2 () = priorErrors || (logger.ErrorCount > 0) let tcSink = TcResultsSink.NoSink - let finisher = - CheckOneInputWithCallback(checkForErrors2, tcConfig, tcImports, tcGlobals, prefixPathOpt, tcSink, currentTcState, input, false) + let (Finisher (finisher = finisher)) = + CheckOneInputWithCallback + idx + (checkForErrors2, tcConfig, tcImports, tcGlobals, prefixPathOpt, tcSink, currentTcState, input, false) |> Cancellable.runWithoutCancellation - Finisher(fun (state: State) -> - let tcState, priorErrors = state - let (partialResult: PartialResult, tcState) = finisher.Invoke(tcState) - let hasErrors = logger.ErrorCount > 0 - let priorOrCurrentErrors = priorErrors || hasErrors - let state: State = tcState, priorOrCurrentErrors - partialResult, state) + Finisher( + idx, + (fun (state: State) -> + printfn "Finisher for %s" input.FileName + let tcState, priorErrors = state + let (partialResult: PartialResult, tcState) = finisher tcState + let hasErrors = logger.ErrorCount > 0 + let priorOrCurrentErrors = priorErrors || hasErrors + let state: State = tcState, priorOrCurrentErrors + partialResult, state) + ) UseMultipleDiagnosticLoggers (inputs, diagnosticsLogger, Some eagerFormat) (fun inputsWithLoggers -> // Equip loggers to locally filter w.r.t. scope pragmas in each input @@ -1753,14 +1779,14 @@ let CheckMultipleInputsUsingGraphMode let logger = DiagnosticsLoggerForInput(tcConfig, input, oldLogger) input, logger) - let processFile (node: NodeToTypeCheck) (state: State) : Finisher = + let processFile (node: NodeToTypeCheck) (state: State) : Finisher = match node with | NodeToTypeCheck.ArtificialImplFile idx -> let parsedInput, _ = inputsWithLoggers[idx] - processArtificialImplFile parsedInput state + processArtificialImplFile idx parsedInput state | NodeToTypeCheck.PhysicalFile idx -> let parsedInput, logger = inputsWithLoggers[idx] - processFile (parsedInput, logger) state + processFile idx (parsedInput, logger) state let state: State = tcState, priorErrors @@ -1769,10 +1795,18 @@ let CheckMultipleInputsUsingGraphMode | NodeToTypeCheck.ArtificialImplFile _ -> None | NodeToTypeCheck.PhysicalFile file -> Some file + let sortFn (a: NodeToTypeCheck) (b: NodeToTypeCheck) : int = + match a, b with + | NodeToTypeCheck.PhysicalFile aIdx, NodeToTypeCheck.PhysicalFile bIdx + | NodeToTypeCheck.ArtificialImplFile aIdx, NodeToTypeCheck.ArtificialImplFile bIdx -> aIdx.CompareTo bIdx + | NodeToTypeCheck.PhysicalFile _, NodeToTypeCheck.ArtificialImplFile _ -> -1 + | NodeToTypeCheck.ArtificialImplFile _, NodeToTypeCheck.PhysicalFile _ -> 1 + let partialResults, (tcState, _) = TypeCheckingGraphProcessing.processTypeCheckingGraph nodeGraph processFile + sortFn folder finalStateItemChooser state diff --git a/src/Compiler/Trimmed.rsp b/src/Compiler/Trimmed.rsp deleted file mode 100644 index a981f6d5be2..00000000000 --- a/src/Compiler/Trimmed.rsp +++ /dev/null @@ -1,226 +0,0 @@ --o:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSharp.Compiler.Service.dll --g ---nologo ---debug:embedded ---noframework ---define:TRACE ---define:COMPILER ---define:FSHARPCORE_USE_PACKAGE ---define:DEBUG ---define:NETSTANDARD ---define:FX_NO_WINFORMS ---define:Debug ---define:NETSTANDARD ---define:NETSTANDARD2_0 ---define:NETSTANDARD1_0_OR_GREATER ---define:NETSTANDARD1_1_OR_GREATER ---define:NETSTANDARD1_2_OR_GREATER ---define:NETSTANDARD1_3_OR_GREATER ---define:NETSTANDARD1_4_OR_GREATER ---define:NETSTANDARD1_5_OR_GREATER ---define:NETSTANDARD1_6_OR_GREATER ---define:NETSTANDARD2_0_OR_GREATER ---doc:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSharp.Compiler.Service.xml ---optimize- ---resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSComp.resources ---resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSIstrings.resources ---resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\UtilsStrings.resources ---resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSStrings.resources --r:C:\Users\nojaf\.nuget\packages\fsharp.core\7.0.0\lib\netstandard2.0\FSharp.Core.dll --r:C:\Users\nojaf\Projects\fsharp\artifacts\bin\FSharp.DependencyManager.Nuget\Debug\netstandard2.0\FSharp.DependencyManager.Nuget.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\Microsoft.Win32.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\mscorlib.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\netstandard.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.AppContext.dll --r:C:\Users\nojaf\.nuget\packages\system.buffers\4.5.1\ref\netstandard2.0\System.Buffers.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Concurrent.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.dll --r:C:\Users\nojaf\.nuget\packages\system.collections.immutable\6.0.0\lib\netstandard2.0\System.Collections.Immutable.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.NonGeneric.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Specialized.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Composition.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.EventBasedAsync.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.TypeConverter.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Console.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Core.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.Common.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Contracts.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Debug.dll --r:C:\Users\nojaf\.nuget\packages\system.diagnostics.diagnosticsource\7.0.0\lib\netstandard2.0\System.Diagnostics.DiagnosticSource.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.FileVersionInfo.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Process.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.StackTrace.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TextWriterTraceListener.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tools.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TraceSource.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tracing.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Dynamic.Runtime.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Calendars.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Extensions.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.FileSystem.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.ZipFile.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.DriveInfo.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Watcher.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.IsolatedStorage.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.MemoryMappedFiles.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Pipes.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.UnmanagedMemoryStream.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Expressions.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Parallel.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Queryable.dll --r:C:\Users\nojaf\.nuget\packages\system.memory\4.5.5\lib\netstandard2.0\System.Memory.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Http.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NameResolution.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NetworkInformation.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Ping.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Requests.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Security.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Sockets.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebHeaderCollection.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.Client.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Numerics.dll --r:C:\Users\nojaf\.nuget\packages\system.numerics.vectors\4.4.0\ref\netstandard2.0\System.Numerics.Vectors.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ObjectModel.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.dll --r:C:\Users\nojaf\.nuget\packages\system.reflection.emit\4.7.0\ref\netstandard2.0\System.Reflection.Emit.dll --r:C:\Users\nojaf\.nuget\packages\system.reflection.emit.ilgeneration\4.7.0\ref\netstandard2.0\System.Reflection.Emit.ILGeneration.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Extensions.dll --r:C:\Users\nojaf\.nuget\packages\system.reflection.metadata\6.0.1\lib\netstandard2.0\System.Reflection.Metadata.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Reader.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.ResourceManager.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Writer.dll --r:C:\Users\nojaf\.nuget\packages\system.runtime.compilerservices.unsafe\6.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.CompilerServices.VisualC.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Extensions.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Handles.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.RuntimeInformation.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Numerics.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Formatters.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Json.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Xml.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Claims.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Algorithms.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Csp.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Encoding.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.X509Certificates.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Principal.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.SecureString.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ServiceModel.Web.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.Extensions.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.RegularExpressions.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Overlapped.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.Parallel.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Thread.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.ThreadPool.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Timer.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Transactions.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ValueTuple.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Web.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Windows.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Linq.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.ReaderWriter.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Serialization.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XDocument.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlDocument.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlSerializer.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.XDocument.dll ---target:library ---nowarn:44,57,75,1204,NU5125,IL2121 ---warn:3 ---warnaserror:3239,1182,0025 ---fullpaths ---flaterrors ---highentropyva+ ---targetprofile:netstandard ---nocopyfsharpcore ---deterministic- ---simpleresolution ---nowarn:3384 ---nowarn:75 ---extraoptimizationloops:1 ---warnon:1182 ---warnon:3218 ---warnon:3390 ---simpleresolution -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSComp.fsi -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSComp.fs -Utilities\Activity.fsi -Utilities\Activity.fs -Utilities\sformat.fsi -Utilities\sformat.fs -Utilities\TaggedCollections.fsi -Utilities\TaggedCollections.fs -Utilities\illib.fsi -Utilities\illib.fs -Utilities\FileSystem.fsi -Utilities\FileSystem.fs -Utilities\zmap.fsi -Utilities\zmap.fs -Utilities\zset.fsi -Utilities\zset.fs -Utilities\XmlAdapters.fsi -Utilities\XmlAdapters.fs -Utilities\InternalCollections.fsi -Utilities\InternalCollections.fs -Utilities\lib.fsi -Utilities\lib.fs -Utilities\range.fsi -Utilities\range.fs -Facilities\LanguageFeatures.fsi -Facilities\LanguageFeatures.fs -Facilities\DiagnosticOptions.fsi -Facilities\DiagnosticOptions.fs -Facilities\DiagnosticsLogger.fsi -Facilities\DiagnosticsLogger.fs -SyntaxTree\PrettyNaming.fsi -SyntaxTree\PrettyNaming.fs -SyntaxTree\XmlDoc.fsi -SyntaxTree\XmlDoc.fs -SyntaxTree\SyntaxTrivia.fsi -SyntaxTree\SyntaxTrivia.fs -SyntaxTree\SyntaxTree.fsi -SyntaxTree\SyntaxTree.fs -SyntaxTree\SyntaxTreeOps.fsi -SyntaxTree\SyntaxTreeOps.fs -Driver\GraphChecking\Continuation.fsi -Driver\GraphChecking\Continuation.fs -Driver\GraphChecking\Types.fsi -Driver\GraphChecking\Types.fs -Driver\GraphChecking\Graph.fsi -Driver\GraphChecking\Graph.fs -Driver\GraphChecking\TrieMapping.fsi -Driver\GraphChecking\TrieMapping.fs -Driver\GraphChecking\FileContentMapping.fsi -Driver\GraphChecking\FileContentMapping.fs -Driver\GraphChecking\DependencyResolution.fsi -Driver\GraphChecking\DependencyResolution.fs -Driver\GraphChecking\GraphProcessing.fsi -Driver\GraphChecking\GraphProcessing.fs -Driver\GraphChecking\TypeCheckingGraphProcessing.fsi -Driver\GraphChecking\TypeCheckingGraphProcessing.fs From 0203625a498cf30f81c4fff2a59ec703378c4460 Mon Sep 17 00:00:00 2001 From: nojaf Date: Mon, 26 Jun 2023 11:55:32 +0200 Subject: [PATCH 3/6] Undo temporary changes. --- src/Compiler/Checking/CheckDeclarations.fs | 3 - src/Compiler/FSharp.Compiler.Service.rsp | 499 ------------------ src/Compiler/SyntaxTree/PrettyNaming.fs | 1 + src/Compiler/SyntaxTree/SyntaxTree.fs | 2 +- src/Compiler/SyntaxTree/SyntaxTreeOps.fs | 108 ++-- src/Compiler/SyntaxTree/XmlDoc.fs | 1 + src/Compiler/SyntaxTree/XmlDoc.fsi | 1 + .../Graph/CompilationFromCmdlineArgsTests.fs | 11 +- 8 files changed, 62 insertions(+), 564 deletions(-) delete mode 100644 src/Compiler/FSharp.Compiler.Service.rsp diff --git a/src/Compiler/Checking/CheckDeclarations.fs b/src/Compiler/Checking/CheckDeclarations.fs index a5a3dcd8dd1..7704b14266b 100644 --- a/src/Compiler/Checking/CheckDeclarations.fs +++ b/src/Compiler/Checking/CheckDeclarations.fs @@ -4661,9 +4661,6 @@ let rec TcSignatureElementNonMutRec (cenv: cenv) parent typeNames endm (env: TcE match TryStripPrefixPath g enclosingNamespacePath with | Some(p, _) -> TcOpenModuleOrNamespaceDecl cenv.tcSink g cenv.amap m.EndRange env ([p], m.EndRange) | None -> env, [] - - if m.FileName.EndsWith("Continuation.fsi") then - () // Publish the combined module type env.eModuleOrNamespaceTypeAccumulator.Value <- diff --git a/src/Compiler/FSharp.Compiler.Service.rsp b/src/Compiler/FSharp.Compiler.Service.rsp deleted file mode 100644 index f42fd83c989..00000000000 --- a/src/Compiler/FSharp.Compiler.Service.rsp +++ /dev/null @@ -1,499 +0,0 @@ --o:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSharp.Compiler.Service.dll --g ---debug:embedded ---noframework ---define:TRACE ---define:COMPILER ---define:FSHARPCORE_USE_PACKAGE ---define:DEBUG ---define:NETSTANDARD ---define:FX_NO_WINFORMS ---define:Debug ---define:NETSTANDARD ---define:NETSTANDARD2_0 ---define:NETSTANDARD1_0_OR_GREATER ---define:NETSTANDARD1_1_OR_GREATER ---define:NETSTANDARD1_2_OR_GREATER ---define:NETSTANDARD1_3_OR_GREATER ---define:NETSTANDARD1_4_OR_GREATER ---define:NETSTANDARD1_5_OR_GREATER ---define:NETSTANDARD1_6_OR_GREATER ---define:NETSTANDARD2_0_OR_GREATER ---doc:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSharp.Compiler.Service.xml ---optimize- ---resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSComp.resources ---resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSIstrings.resources ---resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\UtilsStrings.resources ---resource:C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSStrings.resources --r:C:\Users\nojaf\.nuget\packages\fsharp.core\7.0.0\lib\netstandard2.0\FSharp.Core.dll --r:C:\Users\nojaf\Projects\fsharp\artifacts\bin\FSharp.DependencyManager.Nuget\Debug\netstandard2.0\FSharp.DependencyManager.Nuget.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\Microsoft.Win32.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\mscorlib.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\netstandard.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.AppContext.dll --r:C:\Users\nojaf\.nuget\packages\system.buffers\4.5.1\ref\netstandard2.0\System.Buffers.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Concurrent.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.dll --r:C:\Users\nojaf\.nuget\packages\system.collections.immutable\6.0.0\lib\netstandard2.0\System.Collections.Immutable.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.NonGeneric.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Collections.Specialized.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Composition.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.EventBasedAsync.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ComponentModel.TypeConverter.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Console.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Core.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.Common.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Data.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Contracts.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Debug.dll --r:C:\Users\nojaf\.nuget\packages\system.diagnostics.diagnosticsource\7.0.0\lib\netstandard2.0\System.Diagnostics.DiagnosticSource.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.FileVersionInfo.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Process.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.StackTrace.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TextWriterTraceListener.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tools.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.TraceSource.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Diagnostics.Tracing.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Drawing.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Dynamic.Runtime.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Calendars.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Globalization.Extensions.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.FileSystem.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Compression.ZipFile.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.DriveInfo.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.FileSystem.Watcher.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.IsolatedStorage.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.MemoryMappedFiles.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.Pipes.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.IO.UnmanagedMemoryStream.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Expressions.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Parallel.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Linq.Queryable.dll --r:C:\Users\nojaf\.nuget\packages\system.memory\4.5.5\lib\netstandard2.0\System.Memory.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Http.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NameResolution.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.NetworkInformation.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Ping.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Requests.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Security.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.Sockets.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebHeaderCollection.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.Client.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Net.WebSockets.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Numerics.dll --r:C:\Users\nojaf\.nuget\packages\system.numerics.vectors\4.4.0\ref\netstandard2.0\System.Numerics.Vectors.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ObjectModel.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.dll --r:C:\Users\nojaf\.nuget\packages\system.reflection.emit\4.7.0\ref\netstandard2.0\System.Reflection.Emit.dll --r:C:\Users\nojaf\.nuget\packages\system.reflection.emit.ilgeneration\4.7.0\ref\netstandard2.0\System.Reflection.Emit.ILGeneration.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Extensions.dll --r:C:\Users\nojaf\.nuget\packages\system.reflection.metadata\6.0.1\lib\netstandard2.0\System.Reflection.Metadata.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Reflection.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Reader.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.ResourceManager.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Resources.Writer.dll --r:C:\Users\nojaf\.nuget\packages\system.runtime.compilerservices.unsafe\6.0.0\lib\netstandard2.0\System.Runtime.CompilerServices.Unsafe.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.CompilerServices.VisualC.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Extensions.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Handles.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.InteropServices.RuntimeInformation.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Numerics.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Formatters.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Json.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Runtime.Serialization.Xml.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Claims.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Algorithms.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Csp.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Encoding.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.Primitives.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Cryptography.X509Certificates.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.Principal.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Security.SecureString.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ServiceModel.Web.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.Encoding.Extensions.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Text.RegularExpressions.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Overlapped.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Tasks.Parallel.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Thread.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.ThreadPool.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Threading.Timer.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Transactions.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.ValueTuple.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Web.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Windows.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Linq.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.ReaderWriter.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.Serialization.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XDocument.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlDocument.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XmlSerializer.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.dll --r:C:\Users\nojaf\.nuget\packages\netstandard.library\2.0.3\build\netstandard2.0\ref\System.Xml.XPath.XDocument.dll ---target:library ---nowarn:44,57,75,1204,NU5125,IL2121 ---warn:3 ---warnaserror:3239,1182,0025 ---fullpaths ---flaterrors ---highentropyva+ ---targetprofile:netstandard ---nocopyfsharpcore ---deterministic+ ---simpleresolution ---nowarn:3384 ---times ---nowarn:75 ---extraoptimizationloops:1 ---warnon:1182 ---warnon:3218 ---warnon:3390 ---simpleresolution -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\buildproperties.fs -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSComp.fs -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSIstrings.fs -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\UtilsStrings.fs -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\.NETStandard,Version=v2.0.AssemblyAttributes.fs -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service/Debug/netstandard2.0\FSharp.Compiler.Service.AssemblyInfo.fs -Utilities\Activity.fsi -Utilities\Activity.fs -Utilities\sformat.fsi -Utilities\sformat.fs -Utilities\sr.fsi -Utilities\sr.fs -Utilities\ResizeArray.fsi -Utilities\ResizeArray.fs -Utilities\HashMultiMap.fsi -Utilities\HashMultiMap.fs -Utilities\EditDistance.fsi -Utilities\EditDistance.fs -Utilities\TaggedCollections.fsi -Utilities\TaggedCollections.fs -Utilities\illib.fsi -Utilities\illib.fs -Utilities\FileSystem.fsi -Utilities\FileSystem.fs -Utilities\ildiag.fsi -Utilities\ildiag.fs -Utilities\zmap.fsi -Utilities\zmap.fs -Utilities\zset.fsi -Utilities\zset.fs -Utilities\XmlAdapters.fsi -Utilities\XmlAdapters.fs -Utilities\InternalCollections.fsi -Utilities\InternalCollections.fs -Utilities\QueueList.fsi -Utilities\QueueList.fs -Utilities\lib.fsi -Utilities\lib.fs -Utilities\ImmutableArray.fsi -Utilities\ImmutableArray.fs -Utilities\rational.fsi -Utilities\rational.fs -Utilities\PathMap.fsi -Utilities\PathMap.fs -Utilities\RidHelpers.fs -Utilities\range.fsi -Utilities\range.fs -Facilities\LanguageFeatures.fsi -Facilities\LanguageFeatures.fs -Facilities\DiagnosticOptions.fsi -Facilities\DiagnosticOptions.fs -Facilities\TextLayoutRender.fsi -Facilities\TextLayoutRender.fs -Facilities\DiagnosticsLogger.fsi -Facilities\DiagnosticsLogger.fs -Facilities\DiagnosticResolutionHints.fsi -Facilities\DiagnosticResolutionHints.fs -Facilities\prim-lexing.fsi -Facilities\prim-lexing.fs -Facilities\prim-parsing.fsi -Facilities\prim-parsing.fs -Facilities\ReferenceResolver.fsi -Facilities\ReferenceResolver.fs -Facilities\SimulatedMSBuildReferenceResolver.fsi -Facilities\SimulatedMSBuildReferenceResolver.fs -Facilities\CompilerLocation.fsi -Facilities\CompilerLocation.fs -Facilities\BuildGraph.fsi -Facilities\BuildGraph.fs -AbstractIL\il.fsi -AbstractIL\il.fs -AbstractIL\ilx.fsi -AbstractIL\ilx.fs -AbstractIL\ilascii.fsi -AbstractIL\ilascii.fs -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\ilpars.fsi -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\ilpars.fs -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\illex.fsi -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\illex.fs -AbstractIL\ilprint.fsi -AbstractIL\ilprint.fs -AbstractIL\ilmorph.fsi -AbstractIL\ilmorph.fs -AbstractIL\ilsign.fsi -AbstractIL\ilsign.fs -AbstractIL\ilnativeres.fsi -AbstractIL\ilnativeres.fs -AbstractIL\ilsupp.fsi -AbstractIL\ilsupp.fs -AbstractIL\ilbinary.fsi -AbstractIL\ilbinary.fs -AbstractIL\ilread.fsi -AbstractIL\ilread.fs -AbstractIL\ilwritepdb.fsi -AbstractIL\ilwritepdb.fs -AbstractIL\ilwrite.fsi -AbstractIL\ilwrite.fs -AbstractIL\ilreflect.fsi -AbstractIL\ilreflect.fs -SyntaxTree\PrettyNaming.fsi -SyntaxTree\PrettyNaming.fs -SyntaxTree\UnicodeLexing.fsi -SyntaxTree\UnicodeLexing.fs -SyntaxTree\XmlDoc.fsi -SyntaxTree\XmlDoc.fs -SyntaxTree\SyntaxTrivia.fsi -SyntaxTree\SyntaxTrivia.fs -SyntaxTree\SyntaxTree.fsi -SyntaxTree\SyntaxTree.fs -SyntaxTree\SyntaxTreeOps.fsi -SyntaxTree\SyntaxTreeOps.fs -SyntaxTree\ParseHelpers.fsi -SyntaxTree\ParseHelpers.fs -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\pppars.fsi -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\pppars.fs -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\pars.fsi -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\pars.fs -SyntaxTree\LexHelpers.fsi -SyntaxTree\LexHelpers.fs -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\pplex.fsi -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\pplex.fs -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\\lex.fsi -C:\Users\nojaf\Projects\fsharp\artifacts/obj/FSharp.Compiler.Service//netstandard2.0\\lex.fs -SyntaxTree\LexFilter.fsi -SyntaxTree\LexFilter.fs -TypedTree\tainted.fsi -TypedTree\tainted.fs -TypedTree\TypeProviders.fsi -TypedTree\TypeProviders.fs -TypedTree\QuotationPickler.fsi -TypedTree\QuotationPickler.fs -TypedTree\CompilerGlobalState.fsi -TypedTree\CompilerGlobalState.fs -TypedTree\TypedTree.fsi -TypedTree\TypedTree.fs -TypedTree\TypedTreeBasics.fsi -TypedTree\TypedTreeBasics.fs -TypedTree\TcGlobals.fs -TypedTree\TypedTreeOps.fsi -TypedTree\TypedTreeOps.fs -TypedTree\TypedTreePickle.fsi -TypedTree\TypedTreePickle.fs -TypedTree\UpdatePrettyTyparNames.fsi -TypedTree\UpdatePrettyTyparNames.fs -Checking\import.fsi -Checking\import.fs -Checking\TypeHierarchy.fsi -Checking\TypeHierarchy.fs -Checking\infos.fsi -Checking\infos.fs -Checking\AccessibilityLogic.fsi -Checking\AccessibilityLogic.fs -Checking\AttributeChecking.fsi -Checking\AttributeChecking.fs -Checking\TypeRelations.fsi -Checking\TypeRelations.fs -Checking\InfoReader.fsi -Checking\InfoReader.fs -Checking\NicePrint.fsi -Checking\NicePrint.fs -Checking\AugmentWithHashCompare.fsi -Checking\AugmentWithHashCompare.fs -Checking\NameResolution.fsi -Checking\NameResolution.fs -Checking\SignatureConformance.fsi -Checking\SignatureConformance.fs -Checking\MethodOverrides.fsi -Checking\MethodOverrides.fs -Checking\MethodCalls.fsi -Checking\MethodCalls.fs -Checking\PatternMatchCompilation.fsi -Checking\PatternMatchCompilation.fs -Checking\ConstraintSolver.fsi -Checking\ConstraintSolver.fs -Checking\CheckFormatStrings.fsi -Checking\CheckFormatStrings.fs -Checking\FindUnsolved.fsi -Checking\FindUnsolved.fs -Checking\QuotationTranslator.fsi -Checking\QuotationTranslator.fs -Checking\PostInferenceChecks.fsi -Checking\PostInferenceChecks.fs -Checking\CheckBasics.fsi -Checking\CheckBasics.fs -Checking\CheckRecordSyntaxHelpers.fsi -Checking\CheckRecordSyntaxHelpers.fs -Checking\CheckExpressions.fsi -Checking\CheckExpressions.fs -Checking\CheckPatterns.fsi -Checking\CheckPatterns.fs -Checking\CheckComputationExpressions.fsi -Checking\CheckComputationExpressions.fs -Checking\CheckIncrementalClasses.fsi -Checking\CheckIncrementalClasses.fs -Checking\CheckDeclarations.fsi -Checking\CheckDeclarations.fs -Optimize\Optimizer.fsi -Optimize\Optimizer.fs -Optimize\DetupleArgs.fsi -Optimize\DetupleArgs.fs -Optimize\InnerLambdasToTopLevelFuncs.fsi -Optimize\InnerLambdasToTopLevelFuncs.fs -Optimize\LowerCalls.fsi -Optimize\LowerCalls.fs -Optimize\LowerSequences.fsi -Optimize\LowerSequences.fs -Optimize\LowerComputedCollections.fsi -Optimize\LowerComputedCollections.fs -Optimize\LowerStateMachines.fsi -Optimize\LowerStateMachines.fs -Optimize\LowerLocalMutables.fsi -Optimize\LowerLocalMutables.fs -CodeGen\IlxGenSupport.fsi -CodeGen\IlxGenSupport.fs -CodeGen\EraseClosures.fsi -CodeGen\EraseClosures.fs -CodeGen\EraseUnions.fsi -CodeGen\EraseUnions.fs -CodeGen\IlxGen.fsi -CodeGen\IlxGen.fs -Driver\FxResolver.fsi -Driver\FxResolver.fs -DependencyManager/AssemblyResolveHandler.fsi -DependencyManager/AssemblyResolveHandler.fs -DependencyManager/NativeDllResolveHandler.fsi -DependencyManager/NativeDllResolveHandler.fs -DependencyManager/DependencyProvider.fsi -DependencyManager/DependencyProvider.fs -Driver\CompilerConfig.fsi -Driver\CompilerConfig.fs -Driver\CompilerImports.fsi -Driver\CompilerImports.fs -Driver\CompilerDiagnostics.fsi -Driver\CompilerDiagnostics.fs -Driver\GraphChecking\Continuation.fsi -Driver\GraphChecking\Continuation.fs -Driver\GraphChecking\Types.fsi -Driver\GraphChecking\Types.fs -Driver\GraphChecking\Graph.fsi -Driver\GraphChecking\Graph.fs -Driver\GraphChecking\TrieMapping.fsi -Driver\GraphChecking\TrieMapping.fs -Driver\GraphChecking\FileContentMapping.fsi -Driver\GraphChecking\FileContentMapping.fs -Driver\GraphChecking\DependencyResolution.fsi -Driver\GraphChecking\DependencyResolution.fs -Driver\GraphChecking\GraphProcessing.fsi -Driver\GraphChecking\GraphProcessing.fs -Driver\GraphChecking\TypeCheckingGraphProcessing.fsi -Driver\GraphChecking\TypeCheckingGraphProcessing.fs -Driver\ParseAndCheckInputs.fsi -Driver\ParseAndCheckInputs.fs -Driver\ScriptClosure.fsi -Driver\ScriptClosure.fs -Driver\CompilerOptions.fsi -Driver\CompilerOptions.fs -Driver\OptimizeInputs.fsi -Driver\OptimizeInputs.fs -Driver\XmlDocFileWriter.fsi -Driver\XmlDocFileWriter.fs -Driver\BinaryResourceFormats.fsi -Driver\BinaryResourceFormats.fs -Driver\StaticLinking.fsi -Driver\StaticLinking.fs -Driver\CreateILModule.fsi -Driver\CreateILModule.fs -Driver\fsc.fsi -Driver\fsc.fs -Symbols\FSharpDiagnostic.fsi -Symbols\FSharpDiagnostic.fs -Symbols\SymbolHelpers.fsi -Symbols\SymbolHelpers.fs -Symbols\Symbols.fsi -Symbols\Symbols.fs -Symbols\Exprs.fsi -Symbols\Exprs.fs -Symbols\SymbolPatterns.fsi -Symbols\SymbolPatterns.fs -Service\SemanticClassification.fsi -Service\SemanticClassification.fs -Service\ItemKey.fsi -Service\ItemKey.fs -Service\SemanticClassificationKey.fsi -Service\SemanticClassificationKey.fs -Service\FSharpSource.fsi -Service\FSharpSource.fs -Service\IncrementalBuild.fsi -Service\IncrementalBuild.fs -Service\ServiceCompilerDiagnostics.fsi -Service\ServiceCompilerDiagnostics.fs -Service\ServiceConstants.fs -Service\ServiceDeclarationLists.fsi -Service\ServiceDeclarationLists.fs -Service\ServiceLexing.fsi -Service\ServiceLexing.fs -Service\ServiceParseTreeWalk.fsi -Service\ServiceParseTreeWalk.fs -Service\ServiceNavigation.fsi -Service\ServiceNavigation.fs -Service\ServiceParamInfoLocations.fsi -Service\ServiceParamInfoLocations.fs -Service\FSharpParseFileResults.fsi -Service\FSharpParseFileResults.fs -Service\ServiceParsedInputOps.fsi -Service\ServiceParsedInputOps.fs -Service\ServiceAssemblyContent.fsi -Service\ServiceAssemblyContent.fs -Service\ServiceXmlDocParser.fsi -Service\ServiceXmlDocParser.fs -Service\ExternalSymbol.fsi -Service\ExternalSymbol.fs -Service\QuickParse.fsi -Service\QuickParse.fs -Service\FSharpCheckerResults.fsi -Service\FSharpCheckerResults.fs -Service\service.fsi -Service\service.fs -Service\ServiceInterfaceStubGenerator.fsi -Service\ServiceInterfaceStubGenerator.fs -Service\ServiceStructure.fsi -Service\ServiceStructure.fs -Service\ServiceAnalysis.fsi -Service\ServiceAnalysis.fs -Interactive\FSharpInteractiveServer.fsi -Interactive\FSharpInteractiveServer.fs -Interactive\ControlledExecution.fs -Interactive\fsi.fsi -Interactive\fsi.fs -Legacy\LegacyHostedCompilerForTesting.fs diff --git a/src/Compiler/SyntaxTree/PrettyNaming.fs b/src/Compiler/SyntaxTree/PrettyNaming.fs index 55721ae6222..f78f742a03f 100755 --- a/src/Compiler/SyntaxTree/PrettyNaming.fs +++ b/src/Compiler/SyntaxTree/PrettyNaming.fs @@ -10,6 +10,7 @@ open System.Collections.Concurrent open System.Globalization open System.Text +open FSharp.Compiler.AbstractIL open Internal.Utilities.Library open FSharp.Compiler.Text open FSharp.Compiler.Text.Layout diff --git a/src/Compiler/SyntaxTree/SyntaxTree.fs b/src/Compiler/SyntaxTree/SyntaxTree.fs index 230946c5f4f..e9eb8bdfac3 100644 --- a/src/Compiler/SyntaxTree/SyntaxTree.fs +++ b/src/Compiler/SyntaxTree/SyntaxTree.fs @@ -4,7 +4,7 @@ namespace rec FSharp.Compiler.Syntax open System open System.Diagnostics -// open Internal.Utilities.Library +open Internal.Utilities.Library open FSharp.Compiler.Syntax open FSharp.Compiler.Text open FSharp.Compiler.Text.Range diff --git a/src/Compiler/SyntaxTree/SyntaxTreeOps.fs b/src/Compiler/SyntaxTree/SyntaxTreeOps.fs index c96d040c511..f25b7abb37f 100644 --- a/src/Compiler/SyntaxTree/SyntaxTreeOps.fs +++ b/src/Compiler/SyntaxTree/SyntaxTreeOps.fs @@ -65,7 +65,7 @@ let mkSynCompGenSimplePatVar id = let (|SynSingleIdent|_|) x = match x with - | SynLongIdent (id = [ id ]) -> Some id + | SynLongIdent ([ id ], _, _) -> Some id | _ -> None /// Match a long identifier, including the case for single identifiers which gets a more optimized node in the syntax tree. @@ -105,13 +105,13 @@ let (|SynPipeRight|_|) input = let (|SynPipeRight2|_|) input = match input with - | SynBinOp (synId, SynExpr.Paren (expr = SynExpr.Tuple (isStruct = false; exprs = [ x1a; x1b ])), x2) when synId.idText = "op_PipeRight2" -> + | SynBinOp (synId, SynExpr.Paren (SynExpr.Tuple (false, [ x1a; x1b ], _, _), _, _, _), x2) when synId.idText = "op_PipeRight2" -> Some(x1a, x1b, x2) | _ -> None let (|SynPipeRight3|_|) input = match input with - | SynBinOp (synId, SynExpr.Paren (expr = SynExpr.Tuple (isStruct = false; exprs = [ x1a; x1b; x1c ])), x2) when synId.idText = "op_PipeRight3" -> + | SynBinOp (synId, SynExpr.Paren (SynExpr.Tuple (false, [ x1a; x1b; x1c ], _, _), _, _, _), x2) when synId.idText = "op_PipeRight3" -> Some(x1a, x1b, x1c, x2) | _ -> None @@ -138,7 +138,7 @@ let rec IsControlFlowExpression e = | SynExpr.LetOrUse _ | SynExpr.Sequential _ // Treat "ident { ... }" as a control flow expression - | SynExpr.App (funcExpr = SynExpr.Ident _; argExpr = SynExpr.ComputationExpr _) + | SynExpr.App (_, _, SynExpr.Ident _, SynExpr.ComputationExpr _, _) | SynExpr.IfThenElse _ | SynExpr.LetOrUseBang _ | SynExpr.Match _ @@ -147,7 +147,7 @@ let rec IsControlFlowExpression e = | SynExpr.For _ | SynExpr.ForEach _ | SynExpr.While _ -> true - | SynExpr.Typed (expr = e) -> IsControlFlowExpression e + | SynExpr.Typed (e, _, _) -> IsControlFlowExpression e | _ -> false // The syntactic criteria for when a debug point for a 'let' is extended to include @@ -257,7 +257,7 @@ let rec SimplePatOfPat (synArgNameGenerator: SynArgNameGenerator) p = let item = mkSynIdGetWithAlt m id altNameRefCell false, altNameRefCell, id, item | SynPat.Named (SynIdent (ident, _), _, _, _) - | SynPat.As (rhsPat = SynPat.Named (ident = SynIdent (ident, _))) -> + | SynPat.As (_, SynPat.Named (SynIdent (ident, _), _, _, _), _) -> // named pats should be referred to as their name in docs, tooltips, etc. let item = mkSynIdGet m ident.idText false, None, ident, item @@ -423,11 +423,11 @@ let mkSynQMarkSet m a b c = mkSynTrifix m qmarkSet a b c let mkSynDotParenGet mLhs mDot a b = match b with - | SynExpr.Tuple (isStruct = false; exprs = [ _; _ ]) -> + | SynExpr.Tuple (false, [ _; _ ], _, _) -> errorR (Deprecated(FSComp.SR.astDeprecatedIndexerNotation (), mLhs)) SynExpr.Const(SynConst.Unit, mLhs) - | SynExpr.Tuple (isStruct = false; exprs = [ _; _; _ ]) -> + | SynExpr.Tuple (false, [ _; _; _ ], _, _) -> errorR (Deprecated(FSComp.SR.astDeprecatedIndexerNotation (), mLhs)) SynExpr.Const(SynConst.Unit, mLhs) @@ -447,13 +447,13 @@ let mkSynAssign (l: SynExpr) (r: SynExpr) = match l with //| SynExpr.Paren (l2, m2) -> mkSynAssign m l2 r | LongOrSingleIdent (false, v, None, _) -> SynExpr.LongIdentSet(v, r, m) - | SynExpr.DotGet (expr = e; longDotId = v) -> SynExpr.DotSet(e, v, r, m) + | SynExpr.DotGet (e, _, v, _) -> SynExpr.DotSet(e, v, r, m) | SynExpr.DotIndexedGet (e1, e2, mDot, mLeft) -> SynExpr.DotIndexedSet(e1, e2, r, mLeft, mDot, m) | SynExpr.LibraryOnlyUnionCaseFieldGet (x, y, z, _) -> SynExpr.LibraryOnlyUnionCaseFieldSet(x, y, z, r, m) - | SynExpr.App (funcExpr = SynExpr.App (funcExpr = SingleIdent nm; argExpr = a); argExpr = b) when nm.idText = opNameQMark -> mkSynQMarkSet m a b r - | SynExpr.App (funcExpr = SynExpr.App (funcExpr = SingleIdent nm; argExpr = a); argExpr = b) when nm.idText = opNameParenGet -> mkSynDotParenSet m a b r - | SynExpr.App (funcExpr = SynExpr.LongIdent (false, v, None, _); argExpr = x) -> SynExpr.NamedIndexedPropertySet(v, x, r, m) - | SynExpr.App (funcExpr = SynExpr.DotGet (expr = e; longDotId = v); argExpr = x) -> SynExpr.DotNamedIndexedPropertySet(e, v, x, r, m) + | SynExpr.App (_, _, SynExpr.App (_, _, SingleIdent nm, a, _), b, _) when nm.idText = opNameQMark -> mkSynQMarkSet m a b r + | SynExpr.App (_, _, SynExpr.App (_, _, SingleIdent nm, a, _), b, _) when nm.idText = opNameParenGet -> mkSynDotParenSet m a b r + | SynExpr.App (_, _, SynExpr.LongIdent (false, v, None, _), x, _) -> SynExpr.NamedIndexedPropertySet(v, x, r, m) + | SynExpr.App (_, _, SynExpr.DotGet (e, _, v, _), x, _) -> SynExpr.DotNamedIndexedPropertySet(e, v, x, r, m) | l -> SynExpr.Set(l, r, m) let mkSynDot mDot m l (SynIdent (r, rTrivia)) = @@ -566,13 +566,13 @@ module SynInfo = let AritiesOfArgs (SynValInfo (args, _)) = List.map List.length args /// Get the argument attributes from the syntactic information for an argument. - let AttribsOfArgData (SynArgInfo (attributes = Attributes attribs)) = attribs + let AttribsOfArgData (SynArgInfo (Attributes attribs, _, _)) = attribs /// Infer the syntactic argument info for a single argument from a simple pattern. let rec InferSynArgInfoFromSimplePat attribs p = match p with - | SynSimplePat.Id (ident = nm; isCompilerGenerated = isCompGen; isOptional = isOpt) -> SynArgInfo(attribs, isOpt, (if isCompGen then None else Some nm)) - | SynSimplePat.Typed (pat = a) -> InferSynArgInfoFromSimplePat attribs a + | SynSimplePat.Id (nm, _, isCompGen, _, isOpt, _) -> SynArgInfo(attribs, isOpt, (if isCompGen then None else Some nm)) + | SynSimplePat.Typed (a, _, _) -> InferSynArgInfoFromSimplePat attribs a | SynSimplePat.Attrib (a, attribs2, _) -> InferSynArgInfoFromSimplePat (attribs @ attribs2) a /// Infer the syntactic argument info for one or more arguments one or more simple patterns. @@ -802,40 +802,40 @@ let rec synExprContainsError inpExpr = | SynExpr.Const _ | SynExpr.Dynamic _ -> false - | SynExpr.TypeTest (expr = e) - | SynExpr.Upcast (expr = e) - | SynExpr.AddressOf (expr = e) - | SynExpr.ComputationExpr (expr = e) - | SynExpr.ArrayOrListComputed (expr = e) - | SynExpr.Typed (expr = e) - | SynExpr.Do (expr = e) - | SynExpr.Assert (expr = e) - | SynExpr.DotGet (expr = e) - | SynExpr.LongIdentSet (expr = e) - | SynExpr.New (expr = e) - | SynExpr.TypeApp (expr = e) - | SynExpr.LibraryOnlyUnionCaseFieldGet (expr = e) - | SynExpr.Downcast (expr = e) - | SynExpr.InferredUpcast (expr = e) - | SynExpr.InferredDowncast (expr = e) - | SynExpr.Lazy (expr = e) - | SynExpr.TraitCall (argExpr = e) - | SynExpr.YieldOrReturn (expr = e) - | SynExpr.YieldOrReturnFrom (expr = e) - | SynExpr.DoBang (expr = e) - | SynExpr.Fixed (expr = e) - | SynExpr.DebugPoint (innerExpr = e) - | SynExpr.Paren (expr = e) -> walkExpr e - - | SynExpr.NamedIndexedPropertySet (expr1 = e1; expr2 = e2) - | SynExpr.DotSet (targetExpr = e1; rhsExpr = e2) - | SynExpr.Set (targetExpr = e1; rhsExpr = e2) - | SynExpr.LibraryOnlyUnionCaseFieldSet (expr = e1; rhsExpr = e2) - | SynExpr.JoinIn (lhsExpr = e1; rhsExpr = e2) - | SynExpr.App (funcExpr = e1; argExpr = e2) -> walkExpr e1 || walkExpr e2 - - | SynExpr.ArrayOrList (exprs = es) - | SynExpr.Tuple (exprs = es) -> walkExprs es + | SynExpr.TypeTest (e, _, _) + | SynExpr.Upcast (e, _, _) + | SynExpr.AddressOf (_, e, _, _) + | SynExpr.ComputationExpr (_, e, _) + | SynExpr.ArrayOrListComputed (_, e, _) + | SynExpr.Typed (e, _, _) + | SynExpr.Do (e, _) + | SynExpr.Assert (e, _) + | SynExpr.DotGet (e, _, _, _) + | SynExpr.LongIdentSet (_, e, _) + | SynExpr.New (_, _, e, _) + | SynExpr.TypeApp (e, _, _, _, _, _, _) + | SynExpr.LibraryOnlyUnionCaseFieldGet (e, _, _, _) + | SynExpr.Downcast (e, _, _) + | SynExpr.InferredUpcast (e, _) + | SynExpr.InferredDowncast (e, _) + | SynExpr.Lazy (e, _) + | SynExpr.TraitCall (_, _, e, _) + | SynExpr.YieldOrReturn (_, e, _) + | SynExpr.YieldOrReturnFrom (_, e, _) + | SynExpr.DoBang (e, _) + | SynExpr.Fixed (e, _) + | SynExpr.DebugPoint (_, _, e) + | SynExpr.Paren (e, _, _, _) -> walkExpr e + + | SynExpr.NamedIndexedPropertySet (_, e1, e2, _) + | SynExpr.DotSet (e1, _, e2, _) + | SynExpr.Set (e1, e2, _) + | SynExpr.LibraryOnlyUnionCaseFieldSet (e1, _, _, e2, _) + | SynExpr.JoinIn (e1, _, e2, _) + | SynExpr.App (_, _, e1, e2, _) -> walkExpr e1 || walkExpr e2 + + | SynExpr.ArrayOrList (_, es, _) + | SynExpr.Tuple (_, es, _, _) -> walkExprs es | SynExpr.AnonRecd (copyInfo = origExpr; recordFields = flds) -> (match origExpr with @@ -861,12 +861,12 @@ let rec synExprContainsError inpExpr = walkBinds bs || walkBinds binds - | SynExpr.ForEach (enumExpr = e1; bodyExpr = e2) - | SynExpr.While (whileExpr = e1; doExpr = e2) -> walkExpr e1 || walkExpr e2 + | SynExpr.ForEach (_, _, _, _, _, e1, e2, _) + | SynExpr.While (_, e1, e2, _) -> walkExpr e1 || walkExpr e2 | SynExpr.For (identBody = e1; toBody = e2; doBody = e3) -> walkExpr e1 || walkExpr e2 || walkExpr e3 - | SynExpr.MatchLambda (matchClauses = cl) -> walkMatchClauses cl + | SynExpr.MatchLambda (_, _, cl, _, _) -> walkMatchClauses cl | SynExpr.Lambda (body = e) -> walkExpr e @@ -880,7 +880,7 @@ let rec synExprContainsError inpExpr = | SynExpr.Sequential (_, _, e1, e2, _) -> walkExpr e1 || walkExpr e2 - | SynExpr.SequentialOrImplicitYield (expr1 = e1; expr2 = e2) -> walkExpr e1 || walkExpr e2 + | SynExpr.SequentialOrImplicitYield (_, e1, e2, _, _) -> walkExpr e1 || walkExpr e2 | SynExpr.IfThenElse (ifExpr = e1; thenExpr = e2; elseExpr = e3opt) -> walkExpr e1 || walkExpr e2 || walkExprOpt e3opt diff --git a/src/Compiler/SyntaxTree/XmlDoc.fs b/src/Compiler/SyntaxTree/XmlDoc.fs index ee92eae9a02..e5aa1b70d00 100644 --- a/src/Compiler/SyntaxTree/XmlDoc.fs +++ b/src/Compiler/SyntaxTree/XmlDoc.fs @@ -13,6 +13,7 @@ open FSharp.Compiler.DiagnosticsLogger open FSharp.Compiler.IO open FSharp.Compiler.Text open FSharp.Compiler.Text.Range +open FSharp.Compiler.AbstractIL.IL /// Represents collected XmlDoc lines [] diff --git a/src/Compiler/SyntaxTree/XmlDoc.fsi b/src/Compiler/SyntaxTree/XmlDoc.fsi index 33b168786cc..939a1b238e5 100644 --- a/src/Compiler/SyntaxTree/XmlDoc.fsi +++ b/src/Compiler/SyntaxTree/XmlDoc.fsi @@ -3,6 +3,7 @@ namespace FSharp.Compiler.Xml open FSharp.Compiler.Text +open FSharp.Compiler.AbstractIL.IL /// Represents collected XmlDoc lines [] diff --git a/tests/FSharp.Compiler.ComponentTests/TypeChecks/Graph/CompilationFromCmdlineArgsTests.fs b/tests/FSharp.Compiler.ComponentTests/TypeChecks/Graph/CompilationFromCmdlineArgsTests.fs index 63b18a33ab7..4525d7286f2 100644 --- a/tests/FSharp.Compiler.ComponentTests/TypeChecks/Graph/CompilationFromCmdlineArgsTests.fs +++ b/tests/FSharp.Compiler.ComponentTests/TypeChecks/Graph/CompilationFromCmdlineArgsTests.fs @@ -13,12 +13,10 @@ module CompilationFromCmdlineArgsTests = // The path needs to be absolute. let localProjects: string list = [ - // @"C:\Projects\fantomas\src\Fantomas.Core\Fantomas.Core.args.txt" - // @"C:\Projects\FsAutoComplete\src\FsAutoComplete\FsAutoComplete.args.txt" - // @"C:\Projects\fsharp\src\Compiler\FSharp.Compiler.Service.args.txt" - // @"C:\Projects\fsharp\tests\FSharp.Compiler.ComponentTests\FSharp.Compiler.ComponentTests.args.txt" - @"C:\Users\nojaf\Projects\fsharp\src\Compiler\FSharp.Compiler.Service.rsp" - @"C:\Users\nojaf\Projects\fsharp\src\Compiler\Trimmed.rsp" + @"C:\Projects\fantomas\src\Fantomas.Core\Fantomas.Core.args.txt" + @"C:\Projects\FsAutoComplete\src\FsAutoComplete\FsAutoComplete.args.txt" + @"C:\Projects\fsharp\src\Compiler\FSharp.Compiler.Service.args.txt" + @"C:\Projects\fsharp\tests\FSharp.Compiler.ComponentTests\FSharp.Compiler.ComponentTests.args.txt" ] let checker = FSharpChecker.Create() @@ -38,7 +36,6 @@ module CompilationFromCmdlineArgsTests = if not (Array.contains "--times" argsFromFile) then yield "--times" yield! methodOptions method - yield "--deterministic-" |] let diagnostics, exitCode = checker.Compile(args) |> Async.RunSynchronously From 12fdbdd777bbf2b29bac024ccb5afe0377360c8e Mon Sep 17 00:00:00 2001 From: nojaf Date: Mon, 26 Jun 2023 13:24:08 +0200 Subject: [PATCH 4/6] Use NodeToTypeCheck instead of idx. --- .../TypeCheckingGraphProcessing.fs | 14 ++++----- .../TypeCheckingGraphProcessing.fsi | 4 +-- src/Compiler/Driver/ParseAndCheckInputs.fs | 30 +++++++++---------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fs b/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fs index 52318982d2d..fb3db7b8666 100644 --- a/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fs +++ b/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fs @@ -20,10 +20,10 @@ open System.Threading /// let combineResults (emptyState: 'State) - (deps: ProcessedNode<'Item, 'State * Finisher<'ChosenItem, 'State, 'FinalFileResult>>[]) - (transitiveDeps: ProcessedNode<'Item, 'State * Finisher<'ChosenItem, 'State, 'FinalFileResult>>[]) + (deps: ProcessedNode<'Item, 'State * Finisher<'Item, 'State, 'FinalFileResult>>[]) + (transitiveDeps: ProcessedNode<'Item, 'State * Finisher<'Item, 'State, 'FinalFileResult>>[]) (sortResultsToAdd: 'Item -> 'Item -> int) - (folder: 'State -> Finisher<'ChosenItem, 'State, 'FinalFileResult> -> 'State) + (folder: 'State -> Finisher<'Item, 'State, 'FinalFileResult> -> 'State) : 'State = match deps with | [||] -> emptyState @@ -66,9 +66,9 @@ let combineResults /// let processTypeCheckingGraph<'Item, 'ChosenItem, 'State, 'FinalFileResult when 'Item: equality and 'Item: comparison> (graph: Graph<'Item>) - (work: 'Item -> 'State -> Finisher<'ChosenItem, 'State, 'FinalFileResult>) + (work: 'Item -> 'State -> Finisher<'Item, 'State, 'FinalFileResult>) (sortResultsToAdd: 'Item -> 'Item -> int) - (folder: 'State -> Finisher<'ChosenItem, 'State, 'FinalFileResult> -> 'FinalFileResult * 'State) + (folder: 'State -> Finisher<'Item, 'State, 'FinalFileResult> -> 'FinalFileResult * 'State) // Decides whether a result for an item should be included in the final state, and how to map the item if it should. (finalStateChooser: 'Item -> 'ChosenItem option) (emptyState: 'State) @@ -76,9 +76,9 @@ let processTypeCheckingGraph<'Item, 'ChosenItem, 'State, 'FinalFileResult when ' : ('ChosenItem * 'FinalFileResult) list * 'State = let workWrapper - (getProcessedNode: 'Item -> ProcessedNode<'Item, 'State * Finisher<'ChosenItem, 'State, 'FinalFileResult>>) + (getProcessedNode: 'Item -> ProcessedNode<'Item, 'State * Finisher<'Item, 'State, 'FinalFileResult>>) (node: NodeInfo<'Item>) - : 'State * Finisher<'ChosenItem, 'State, 'FinalFileResult> = + : 'State * Finisher<'Item, 'State, 'FinalFileResult> = let folder x y = folder x y |> snd let deps = node.Deps |> Array.except [| node.Item |] |> Array.map getProcessedNode diff --git a/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fsi b/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fsi index 07f1d003ffb..7d03d404269 100644 --- a/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fsi +++ b/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fsi @@ -9,9 +9,9 @@ open System.Threading /// val processTypeCheckingGraph<'Item, 'ChosenItem, 'State, 'FinalFileResult when 'Item: equality and 'Item: comparison> : graph: Graph<'Item> -> - work: ('Item -> 'State -> Finisher<'ChosenItem, 'State, 'FinalFileResult>) -> + work: ('Item -> 'State -> Finisher<'Item, 'State, 'FinalFileResult>) -> sortResultsToAdd: ('Item -> 'Item -> int) -> - folder: ('State -> Finisher<'ChosenItem, 'State, 'FinalFileResult> -> 'FinalFileResult * 'State) -> + folder: ('State -> Finisher<'Item, 'State, 'FinalFileResult> -> 'FinalFileResult * 'State) -> finalStateChooser: ('Item -> 'ChosenItem option) -> emptyState: 'State -> ct: CancellationToken -> diff --git a/src/Compiler/Driver/ParseAndCheckInputs.fs b/src/Compiler/Driver/ParseAndCheckInputs.fs index e85f4db1cc0..7bd2962670b 100644 --- a/src/Compiler/Driver/ParseAndCheckInputs.fs +++ b/src/Compiler/Driver/ParseAndCheckInputs.fs @@ -1477,7 +1477,7 @@ let folder (state: State) (Finisher (finisher = finisher)) : FinalFileResult * S /// Typecheck a single file (or interactive entry into F# Interactive) /// a callback functions that takes a `TcState` and will add the checked result to it. let CheckOneInputWithCallback - (idx: int) + (node: NodeToTypeCheck) ((checkForErrors, tcConfig: TcConfig, tcImports: TcImports, @@ -1487,7 +1487,7 @@ let CheckOneInputWithCallback tcState: TcState, inp: ParsedInput, _skipImplIfSigExists: bool): (unit -> bool) * TcConfig * TcImports * TcGlobals * LongIdent option * TcResultsSink * TcState * ParsedInput * bool) - : Cancellable> = + : Cancellable> = cancellable { try CheckSimulateException tcConfig @@ -1537,7 +1537,7 @@ let CheckOneInputWithCallback return Finisher( - idx, + node, (fun tcState -> if tcState.tcsRootSigs.ContainsKey qualNameOfFile then printfn $"{qualNameOfFile} already part of root sigs?" @@ -1589,7 +1589,7 @@ let CheckOneInputWithCallback return Finisher( - idx, + node, (fun tcState -> // Check if we've already seen an implementation for this fragment if Zset.contains qualNameOfFile tcState.tcsRootImpls then @@ -1613,7 +1613,7 @@ let CheckOneInputWithCallback with e -> errorRecovery e range0 - return Finisher(idx, (fun tcState -> (tcState.TcEnvFromSignatures, EmptyTopAttrs, None, tcState.tcsCcuSig), tcState)) + return Finisher(node, (fun tcState -> (tcState.TcEnvFromSignatures, EmptyTopAttrs, None, tcState.tcsCcuSig), tcState)) } let AddSignatureResultToTcImplEnv (tcImports: TcImports, tcGlobals, prefixPathOpt, tcSink, tcState, input: ParsedInput) = @@ -1724,12 +1724,12 @@ let CheckMultipleInputsUsingGraphMode let priorErrors = checkForErrors () let processArtificialImplFile - (idx: int) + (node: NodeToTypeCheck) (input: ParsedInput) ((currentTcState, _currentPriorErrors): State) - : Finisher = + : Finisher = Finisher( - idx, + node, (fun (state: State) -> let tcState, currentPriorErrors = state @@ -1744,22 +1744,22 @@ let CheckMultipleInputsUsingGraphMode ) let processFile - (idx: int) + (node: NodeToTypeCheck) ((input, logger): ParsedInput * DiagnosticsLogger) ((currentTcState, _currentPriorErrors): State) - : Finisher = + : Finisher = use _ = UseDiagnosticsLogger logger let checkForErrors2 () = priorErrors || (logger.ErrorCount > 0) let tcSink = TcResultsSink.NoSink let (Finisher (finisher = finisher)) = CheckOneInputWithCallback - idx + node (checkForErrors2, tcConfig, tcImports, tcGlobals, prefixPathOpt, tcSink, currentTcState, input, false) |> Cancellable.runWithoutCancellation Finisher( - idx, + node, (fun (state: State) -> printfn "Finisher for %s" input.FileName let tcState, priorErrors = state @@ -1779,14 +1779,14 @@ let CheckMultipleInputsUsingGraphMode let logger = DiagnosticsLoggerForInput(tcConfig, input, oldLogger) input, logger) - let processFile (node: NodeToTypeCheck) (state: State) : Finisher = + let processFile (node: NodeToTypeCheck) (state: State) : Finisher = match node with | NodeToTypeCheck.ArtificialImplFile idx -> let parsedInput, _ = inputsWithLoggers[idx] - processArtificialImplFile idx parsedInput state + processArtificialImplFile node parsedInput state | NodeToTypeCheck.PhysicalFile idx -> let parsedInput, logger = inputsWithLoggers[idx] - processFile idx (parsedInput, logger) state + processFile node (parsedInput, logger) state let state: State = tcState, priorErrors From 8616d7fd1d739f93c84b644960ea54c8fa926787 Mon Sep 17 00:00:00 2001 From: nojaf Date: Mon, 26 Jun 2023 13:24:46 +0200 Subject: [PATCH 5/6] Undo spaces --- src/Compiler/Checking/CheckDeclarations.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Compiler/Checking/CheckDeclarations.fs b/src/Compiler/Checking/CheckDeclarations.fs index 7704b14266b..a37c39a7d43 100644 --- a/src/Compiler/Checking/CheckDeclarations.fs +++ b/src/Compiler/Checking/CheckDeclarations.fs @@ -4661,7 +4661,7 @@ let rec TcSignatureElementNonMutRec (cenv: cenv) parent typeNames endm (env: TcE match TryStripPrefixPath g enclosingNamespacePath with | Some(p, _) -> TcOpenModuleOrNamespaceDecl cenv.tcSink g cenv.amap m.EndRange env ([p], m.EndRange) | None -> env, [] - + // Publish the combined module type env.eModuleOrNamespaceTypeAccumulator.Value <- CombineCcuContentFragments [env.eModuleOrNamespaceTypeAccumulator.Value; modTyRoot] From a1a6194ff126527ccc0113c1d7006e65d305b128 Mon Sep 17 00:00:00 2001 From: nojaf Date: Tue, 27 Jun 2023 10:25:07 +0200 Subject: [PATCH 6/6] Move processTypeCheckingGraph into ParseAndCheckInputs.fs --- .../TypeCheckingGraphProcessing.fs | 110 --------------- .../TypeCheckingGraphProcessing.fsi | 18 --- src/Compiler/Driver/ParseAndCheckInputs.fs | 128 ++++++++++++++---- src/Compiler/FSharp.Compiler.Service.fsproj | 2 - 4 files changed, 101 insertions(+), 157 deletions(-) delete mode 100644 src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fs delete mode 100644 src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fsi diff --git a/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fs b/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fs deleted file mode 100644 index fb3db7b8666..00000000000 --- a/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fs +++ /dev/null @@ -1,110 +0,0 @@ -module internal FSharp.Compiler.GraphChecking.TypeCheckingGraphProcessing - -open GraphProcessing -open System.Collections.Generic -open System.Threading - -// TODO Do we need to suppress some error logging if we -// TODO apply the same partial results multiple times? -// TODO Maybe we can enable logging only for the final fold -/// -/// Combine type-checking results of dependencies needed to type-check a 'higher' node in the graph -/// -/// Initial state -/// Direct dependencies of a node -/// Transitive dependencies of a node -/// A way to fold a single result into existing state -/// ... -/// -/// Similar to 'processFileGraph', this function is generic yet specific to the type-checking process. -/// -let combineResults - (emptyState: 'State) - (deps: ProcessedNode<'Item, 'State * Finisher<'Item, 'State, 'FinalFileResult>>[]) - (transitiveDeps: ProcessedNode<'Item, 'State * Finisher<'Item, 'State, 'FinalFileResult>>[]) - (sortResultsToAdd: 'Item -> 'Item -> int) - (folder: 'State -> Finisher<'Item, 'State, 'FinalFileResult> -> 'State) - : 'State = - match deps with - | [||] -> emptyState - | _ -> - // Instead of starting with empty state, - // reuse state produced by the dependency with the biggest number of transitive dependencies. - // This is to reduce the number of folds required to achieve the final state. - let biggestDependency = - let sizeMetric (node: ProcessedNode<_, _>) = node.Info.TransitiveDeps.Length - deps |> Array.maxBy sizeMetric - - let firstState = biggestDependency.Result |> fst - - // Find items not already included in the state. - // Note: Ordering is not preserved due to reusing results of the biggest child - // rather than starting with empty state - let itemsPresent = - set - [| - yield! biggestDependency.Info.TransitiveDeps - yield biggestDependency.Info.Item - |] - - let resultsToAdd = - transitiveDeps - |> Array.filter (fun dep -> itemsPresent.Contains dep.Info.Item = false) - |> Array.distinctBy (fun dep -> dep.Info.Item) - |> Array.sortWith (fun a b -> sortResultsToAdd a.Info.Item b.Info.Item) - |> Array.map (fun dep -> dep.Result |> snd) - - // Fold results not already included and produce the final state - let state = Array.fold folder firstState resultsToAdd - state - -// TODO This function and its parameters are quite specific to type-checking despite using generic types. -// Perhaps we should make it either more specific and remove type parameters, or more generic. -/// -/// Process a graph of items. -/// A version of 'GraphProcessing.processGraph' with a signature slightly specific to type-checking. -/// -let processTypeCheckingGraph<'Item, 'ChosenItem, 'State, 'FinalFileResult when 'Item: equality and 'Item: comparison> - (graph: Graph<'Item>) - (work: 'Item -> 'State -> Finisher<'Item, 'State, 'FinalFileResult>) - (sortResultsToAdd: 'Item -> 'Item -> int) - (folder: 'State -> Finisher<'Item, 'State, 'FinalFileResult> -> 'FinalFileResult * 'State) - // Decides whether a result for an item should be included in the final state, and how to map the item if it should. - (finalStateChooser: 'Item -> 'ChosenItem option) - (emptyState: 'State) - (ct: CancellationToken) - : ('ChosenItem * 'FinalFileResult) list * 'State = - - let workWrapper - (getProcessedNode: 'Item -> ProcessedNode<'Item, 'State * Finisher<'Item, 'State, 'FinalFileResult>>) - (node: NodeInfo<'Item>) - : 'State * Finisher<'Item, 'State, 'FinalFileResult> = - let folder x y = folder x y |> snd - let deps = node.Deps |> Array.except [| node.Item |] |> Array.map getProcessedNode - - let transitiveDeps = - node.TransitiveDeps - |> Array.except [| node.Item |] - |> Array.map getProcessedNode - - let inputState = - combineResults emptyState deps transitiveDeps sortResultsToAdd folder - - let singleRes = work node.Item inputState - let state = folder inputState singleRes - state, singleRes - - let results = processGraph graph workWrapper ct - - let finalFileResults, state: ('ChosenItem * 'FinalFileResult) list * 'State = - (([], emptyState), - results - |> Array.choose (fun (item, res) -> - match finalStateChooser item with - | Some item -> Some(item, res) - | None -> None)) - ||> Array.fold (fun (fileResults, state) (item, (_, itemRes)) -> - let fileResult, state = folder state itemRes - (item, fileResult) :: fileResults, state) - - finalFileResults, state diff --git a/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fsi b/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fsi deleted file mode 100644 index 7d03d404269..00000000000 --- a/src/Compiler/Driver/GraphChecking/TypeCheckingGraphProcessing.fsi +++ /dev/null @@ -1,18 +0,0 @@ -/// Parallel processing of a type-checking file graph. -module internal FSharp.Compiler.GraphChecking.TypeCheckingGraphProcessing - -open System.Threading - -/// -/// Process a graph of items. -/// A version of 'GraphProcessing.processGraph' with a signature slightly specific to type-checking. -/// -val processTypeCheckingGraph<'Item, 'ChosenItem, 'State, 'FinalFileResult when 'Item: equality and 'Item: comparison> : - graph: Graph<'Item> -> - work: ('Item -> 'State -> Finisher<'Item, 'State, 'FinalFileResult>) -> - sortResultsToAdd: ('Item -> 'Item -> int) -> - folder: ('State -> Finisher<'Item, 'State, 'FinalFileResult> -> 'FinalFileResult * 'State) -> - finalStateChooser: ('Item -> 'ChosenItem option) -> - emptyState: 'State -> - ct: CancellationToken -> - ('ChosenItem * 'FinalFileResult) list * 'State diff --git a/src/Compiler/Driver/ParseAndCheckInputs.fs b/src/Compiler/Driver/ParseAndCheckInputs.fs index 7bd2962670b..a731cc2e05a 100644 --- a/src/Compiler/Driver/ParseAndCheckInputs.fs +++ b/src/Compiler/Driver/ParseAndCheckInputs.fs @@ -1472,8 +1472,6 @@ type NodeToTypeCheck = /// Even though the actual implementation file was not type-checked. | ArtificialImplFile of signatureFileIndex: FileIndex -let folder (state: State) (Finisher (finisher = finisher)) : FinalFileResult * State = finisher state - /// Typecheck a single file (or interactive entry into F# Interactive) /// a callback functions that takes a `TcState` and will add the checked result to it. let CheckOneInputWithCallback @@ -1539,10 +1537,6 @@ let CheckOneInputWithCallback Finisher( node, (fun tcState -> - if tcState.tcsRootSigs.ContainsKey qualNameOfFile then - printfn $"{qualNameOfFile} already part of root sigs?" - () - let rootSigs = Zmap.add qualNameOfFile sigFileType tcState.tcsRootSigs let tcSigEnv = @@ -1638,6 +1632,106 @@ let AddSignatureResultToTcImplEnv (tcImports: TcImports, tcGlobals, prefixPathOp partialResult, tcState +module private TypeCheckingGraphProcessing = + open FSharp.Compiler.GraphChecking.GraphProcessing + + // TODO Do we need to suppress some error logging if we + // TODO apply the same partial results multiple times? + // TODO Maybe we can enable logging only for the final fold + /// + /// Combine type-checking results of dependencies needed to type-check a 'higher' node in the graph + /// + /// Initial state + /// Direct dependencies of a node + /// Transitive dependencies of a node + /// A way to fold a single result into existing state + let private combineResults + (emptyState: State) + (deps: ProcessedNode> array) + (transitiveDeps: ProcessedNode> array) + (folder: State -> Finisher -> State) + : State = + match deps with + | [||] -> emptyState + | _ -> + // Instead of starting with empty state, + // reuse state produced by the dependency with the biggest number of transitive dependencies. + // This is to reduce the number of folds required to achieve the final state. + let biggestDependency = + let sizeMetric (node: ProcessedNode<_, _>) = node.Info.TransitiveDeps.Length + deps |> Array.maxBy sizeMetric + + let firstState = biggestDependency.Result |> fst + + // Find items not already included in the state. + let itemsPresent = + set + [| + yield! biggestDependency.Info.TransitiveDeps + yield biggestDependency.Info.Item + |] + + let resultsToAdd = + transitiveDeps + |> Array.filter (fun dep -> itemsPresent.Contains dep.Info.Item = false) + |> Array.distinctBy (fun dep -> dep.Info.Item) + |> Array.sortWith (fun a b -> + // We preserve the order in which items are folded to the state. + match a.Info.Item, b.Info.Item with + | NodeToTypeCheck.PhysicalFile aIdx, NodeToTypeCheck.PhysicalFile bIdx + | NodeToTypeCheck.ArtificialImplFile aIdx, NodeToTypeCheck.ArtificialImplFile bIdx -> aIdx.CompareTo bIdx + | NodeToTypeCheck.PhysicalFile _, NodeToTypeCheck.ArtificialImplFile _ -> -1 + | NodeToTypeCheck.ArtificialImplFile _, NodeToTypeCheck.PhysicalFile _ -> 1) + |> Array.map (fun dep -> dep.Result |> snd) + + // Fold results not already included and produce the final state + let state = Array.fold folder firstState resultsToAdd + state + + /// + /// Process a graph of items. + /// A version of 'GraphProcessing.processGraph' with a signature specific to type-checking. + /// + let processTypeCheckingGraph + (graph: Graph) + (work: NodeToTypeCheck -> State -> Finisher) + (emptyState: State) + (ct: CancellationToken) + : (int * FinalFileResult) list * State = + + let workWrapper + (getProcessedNode: NodeToTypeCheck -> ProcessedNode>) + (node: NodeInfo) + : State * Finisher = + let folder (state: State) (Finisher (finisher = finisher)) : State = finisher state |> snd + let deps = node.Deps |> Array.except [| node.Item |] |> Array.map getProcessedNode + + let transitiveDeps = + node.TransitiveDeps + |> Array.except [| node.Item |] + |> Array.map getProcessedNode + + let inputState = combineResults emptyState deps transitiveDeps folder + + let singleRes = work node.Item inputState + let state = folder inputState singleRes + state, singleRes + + let results = processGraph graph workWrapper ct + + let finalFileResults, state: (int * FinalFileResult) list * State = + (([], emptyState), + results + |> Array.choose (fun (item, res) -> + match item with + | NodeToTypeCheck.ArtificialImplFile _ -> None + | NodeToTypeCheck.PhysicalFile file -> Some(file, res))) + ||> Array.fold (fun (fileResults, state) (item, (_, Finisher (finisher = finisher))) -> + let fileResult, state = finisher state + (item, fileResult) :: fileResults, state) + + finalFileResults, state + /// Constructs a file dependency graph and type-checks the files in parallel where possible. let CheckMultipleInputsUsingGraphMode ((ctok, checkForErrors, tcConfig: TcConfig, tcImports: TcImports, tcGlobals, prefixPathOpt, tcState, eagerFormat, inputs): 'a * (unit -> bool) * TcConfig * TcImports * TcGlobals * LongIdent option * TcState * (PhasedDiagnostic -> PhasedDiagnostic) * ParsedInput list) @@ -1761,7 +1855,6 @@ let CheckMultipleInputsUsingGraphMode Finisher( node, (fun (state: State) -> - printfn "Finisher for %s" input.FileName let tcState, priorErrors = state let (partialResult: PartialResult, tcState) = finisher tcState let hasErrors = logger.ErrorCount > 0 @@ -1790,27 +1883,8 @@ let CheckMultipleInputsUsingGraphMode let state: State = tcState, priorErrors - let finalStateItemChooser node = - match node with - | NodeToTypeCheck.ArtificialImplFile _ -> None - | NodeToTypeCheck.PhysicalFile file -> Some file - - let sortFn (a: NodeToTypeCheck) (b: NodeToTypeCheck) : int = - match a, b with - | NodeToTypeCheck.PhysicalFile aIdx, NodeToTypeCheck.PhysicalFile bIdx - | NodeToTypeCheck.ArtificialImplFile aIdx, NodeToTypeCheck.ArtificialImplFile bIdx -> aIdx.CompareTo bIdx - | NodeToTypeCheck.PhysicalFile _, NodeToTypeCheck.ArtificialImplFile _ -> -1 - | NodeToTypeCheck.ArtificialImplFile _, NodeToTypeCheck.PhysicalFile _ -> 1 - let partialResults, (tcState, _) = - TypeCheckingGraphProcessing.processTypeCheckingGraph - nodeGraph - processFile - sortFn - folder - finalStateItemChooser - state - cts.Token + TypeCheckingGraphProcessing.processTypeCheckingGraph nodeGraph processFile state cts.Token let partialResults = partialResults diff --git a/src/Compiler/FSharp.Compiler.Service.fsproj b/src/Compiler/FSharp.Compiler.Service.fsproj index ecf060a63ef..4e061b6724d 100644 --- a/src/Compiler/FSharp.Compiler.Service.fsproj +++ b/src/Compiler/FSharp.Compiler.Service.fsproj @@ -415,8 +415,6 @@ - -