未验证 提交 4a98074c 编写于 作者: K Kevin Ransom (msft) 提交者: GitHub

Yeet FSharp.Compiler.Private.Scripting and Microsoft.Dotnet.DependencyManager (#10890)

* Yeet FSharp.Compiler.Private.Scripting and Microsoft.Dotnet.DependencyManager

* update tests

* Update docs/compiler-guide.md
Co-authored-by: NVlad Zarytovskii <vzaritovsky@hotmail.com>
Co-authored-by: NVlad Zarytovskii <vzaritovsky@hotmail.com>
上级 f85c4611
......@@ -44,12 +44,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.FSharp.Compiler",
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.DependencyManager.Nuget", "src\fsharp\FSharp.DependencyManager.Nuget\FSharp.DependencyManager.Nuget.fsproj", "{8B7BF62E-7D8C-4928-BE40-4E392A9EE851}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Private.Scripting", "src\fsharp\FSharp.Compiler.Private.Scripting\FSharp.Compiler.Private.Scripting.fsproj", "{6771860A-614D-4FDD-A655-4C70EBCC91B0}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Private.Scripting.UnitTests", "tests\FSharp.Compiler.Private.Scripting.UnitTests\FSharp.Compiler.Private.Scripting.UnitTests.fsproj", "{4FEDF286-0252-4EBC-9E75-879CCA3B85DC}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Microsoft.DotNet.DependencyManager", "src\fsharp\Microsoft.DotNet.DependencyManager\Microsoft.DotNet.DependencyManager.fsproj", "{B5A043F8-6D7F-4D4E-B8AD-5880070180B6}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.ComponentTests", "tests\FSharp.Compiler.ComponentTests\FSharp.Compiler.ComponentTests.fsproj", "{FAC5A3BF-C0D6-437A-868A-E962AA00B418}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "fsharpqa", "fsharpqa", "{292C4F92-A313-4CAF-9552-731F39C6C21F}"
......@@ -242,18 +238,6 @@ Global
{8B7BF62E-7D8C-4928-BE40-4E392A9EE851}.Release|Any CPU.Build.0 = Release|Any CPU
{8B7BF62E-7D8C-4928-BE40-4E392A9EE851}.Release|x86.ActiveCfg = Release|Any CPU
{8B7BF62E-7D8C-4928-BE40-4E392A9EE851}.Release|x86.Build.0 = Release|Any CPU
{6771860A-614D-4FDD-A655-4C70EBCC91B0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{6771860A-614D-4FDD-A655-4C70EBCC91B0}.Debug|Any CPU.Build.0 = Debug|Any CPU
{6771860A-614D-4FDD-A655-4C70EBCC91B0}.Debug|x86.ActiveCfg = Debug|Any CPU
{6771860A-614D-4FDD-A655-4C70EBCC91B0}.Debug|x86.Build.0 = Debug|Any CPU
{6771860A-614D-4FDD-A655-4C70EBCC91B0}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
{6771860A-614D-4FDD-A655-4C70EBCC91B0}.Proto|Any CPU.Build.0 = Debug|Any CPU
{6771860A-614D-4FDD-A655-4C70EBCC91B0}.Proto|x86.ActiveCfg = Debug|Any CPU
{6771860A-614D-4FDD-A655-4C70EBCC91B0}.Proto|x86.Build.0 = Debug|Any CPU
{6771860A-614D-4FDD-A655-4C70EBCC91B0}.Release|Any CPU.ActiveCfg = Release|Any CPU
{6771860A-614D-4FDD-A655-4C70EBCC91B0}.Release|Any CPU.Build.0 = Release|Any CPU
{6771860A-614D-4FDD-A655-4C70EBCC91B0}.Release|x86.ActiveCfg = Release|Any CPU
{6771860A-614D-4FDD-A655-4C70EBCC91B0}.Release|x86.Build.0 = Release|Any CPU
{4FEDF286-0252-4EBC-9E75-879CCA3B85DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4FEDF286-0252-4EBC-9E75-879CCA3B85DC}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4FEDF286-0252-4EBC-9E75-879CCA3B85DC}.Debug|x86.ActiveCfg = Debug|Any CPU
......@@ -266,18 +250,6 @@ Global
{4FEDF286-0252-4EBC-9E75-879CCA3B85DC}.Release|Any CPU.Build.0 = Release|Any CPU
{4FEDF286-0252-4EBC-9E75-879CCA3B85DC}.Release|x86.ActiveCfg = Release|Any CPU
{4FEDF286-0252-4EBC-9E75-879CCA3B85DC}.Release|x86.Build.0 = Release|Any CPU
{B5A043F8-6D7F-4D4E-B8AD-5880070180B6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{B5A043F8-6D7F-4D4E-B8AD-5880070180B6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{B5A043F8-6D7F-4D4E-B8AD-5880070180B6}.Debug|x86.ActiveCfg = Debug|Any CPU
{B5A043F8-6D7F-4D4E-B8AD-5880070180B6}.Debug|x86.Build.0 = Debug|Any CPU
{B5A043F8-6D7F-4D4E-B8AD-5880070180B6}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
{B5A043F8-6D7F-4D4E-B8AD-5880070180B6}.Proto|Any CPU.Build.0 = Debug|Any CPU
{B5A043F8-6D7F-4D4E-B8AD-5880070180B6}.Proto|x86.ActiveCfg = Debug|Any CPU
{B5A043F8-6D7F-4D4E-B8AD-5880070180B6}.Proto|x86.Build.0 = Debug|Any CPU
{B5A043F8-6D7F-4D4E-B8AD-5880070180B6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{B5A043F8-6D7F-4D4E-B8AD-5880070180B6}.Release|Any CPU.Build.0 = Release|Any CPU
{B5A043F8-6D7F-4D4E-B8AD-5880070180B6}.Release|x86.ActiveCfg = Release|Any CPU
{B5A043F8-6D7F-4D4E-B8AD-5880070180B6}.Release|x86.Build.0 = Release|Any CPU
{FAC5A3BF-C0D6-437A-868A-E962AA00B418}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{FAC5A3BF-C0D6-437A-868A-E962AA00B418}.Debug|Any CPU.Build.0 = Debug|Any CPU
{FAC5A3BF-C0D6-437A-868A-E962AA00B418}.Debug|x86.ActiveCfg = Debug|Any CPU
......@@ -344,9 +316,7 @@ Global
{53C0DAAD-158C-4658-8EC7-D7341530239F} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{81B9FE26-C976-4FC7-B6CC-C7DB5903CAA7} = {3840F2E7-3898-45F7-8CF7-1E6829E56DB8}
{8B7BF62E-7D8C-4928-BE40-4E392A9EE851} = {3881429D-A97A-49EB-B7AE-A82BA5FE9C77}
{6771860A-614D-4FDD-A655-4C70EBCC91B0} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{4FEDF286-0252-4EBC-9E75-879CCA3B85DC} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{B5A043F8-6D7F-4D4E-B8AD-5880070180B6} = {3058BC79-8E79-4645-B05D-48CC182FA8A6}
{FAC5A3BF-C0D6-437A-868A-E962AA00B418} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{292C4F92-A313-4CAF-9552-731F39C6C21F} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{FF76050A-415A-4FB4-A0E5-13CBF38D83E0} = {292C4F92-A313-4CAF-9552-731F39C6C21F}
......
......@@ -138,8 +138,6 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NuGet", "NuGet", "{647810D0
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.FSharp.Compiler", "src\fsharp\Microsoft.FSharp.Compiler\Microsoft.FSharp.Compiler.csproj", "{04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Private.Scripting", "src\fsharp\FSharp.Compiler.Private.Scripting\FSharp.Compiler.Private.Scripting.fsproj", "{20B7BC36-CF51-4D75-9E13-66681C07977F}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Private.Scripting.UnitTests", "tests\FSharp.Compiler.Private.Scripting.UnitTests\FSharp.Compiler.Private.Scripting.UnitTests.fsproj", "{09F56540-AFA5-4694-B7A6-0DBF6D4618C2}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.DependencyManager.Nuget", "src\fsharp\FSharp.DependencyManager.Nuget\FSharp.DependencyManager.Nuget.fsproj", "{DFA30881-C0B1-4813-B087-C21B5AF9B77F}"
......@@ -154,8 +152,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "LibraryProject", "vsintegra
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "TutorialProject", "vsintegration\ProjectTemplates\TutorialProject\TutorialProject.csproj", "{2937CBEC-262D-4C94-BE1D-291FAB72E3E8}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "Microsoft.DotNet.DependencyManager", "src\fsharp\Microsoft.DotNet.DependencyManager\Microsoft.DotNet.DependencyManager.fsproj", "{C2F38485-5F87-4986-985B-55D7ED96D5CE}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.ComponentTests", "tests\FSharp.Compiler.ComponentTests\FSharp.Compiler.ComponentTests.fsproj", "{0610FB97-7C15-422A-86FD-32335C6DF14D}"
EndProject
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Compiler.Service", "src\fsharp\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj", "{B5A9BBD9-2F45-4722-A6CA-BAE3C64CD4E2}"
......@@ -820,18 +816,6 @@ Global
{04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Release|Any CPU.Build.0 = Release|Any CPU
{04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Release|x86.ActiveCfg = Release|Any CPU
{04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8}.Release|x86.Build.0 = Release|Any CPU
{20B7BC36-CF51-4D75-9E13-66681C07977F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{20B7BC36-CF51-4D75-9E13-66681C07977F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{20B7BC36-CF51-4D75-9E13-66681C07977F}.Debug|x86.ActiveCfg = Debug|Any CPU
{20B7BC36-CF51-4D75-9E13-66681C07977F}.Debug|x86.Build.0 = Debug|Any CPU
{20B7BC36-CF51-4D75-9E13-66681C07977F}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
{20B7BC36-CF51-4D75-9E13-66681C07977F}.Proto|Any CPU.Build.0 = Debug|Any CPU
{20B7BC36-CF51-4D75-9E13-66681C07977F}.Proto|x86.ActiveCfg = Debug|Any CPU
{20B7BC36-CF51-4D75-9E13-66681C07977F}.Proto|x86.Build.0 = Debug|Any CPU
{20B7BC36-CF51-4D75-9E13-66681C07977F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{20B7BC36-CF51-4D75-9E13-66681C07977F}.Release|Any CPU.Build.0 = Release|Any CPU
{20B7BC36-CF51-4D75-9E13-66681C07977F}.Release|x86.ActiveCfg = Release|Any CPU
{20B7BC36-CF51-4D75-9E13-66681C07977F}.Release|x86.Build.0 = Release|Any CPU
{09F56540-AFA5-4694-B7A6-0DBF6D4618C2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{09F56540-AFA5-4694-B7A6-0DBF6D4618C2}.Debug|Any CPU.Build.0 = Debug|Any CPU
{09F56540-AFA5-4694-B7A6-0DBF6D4618C2}.Debug|x86.ActiveCfg = Debug|Any CPU
......@@ -904,18 +888,6 @@ Global
{2937CBEC-262D-4C94-BE1D-291FAB72E3E8}.Release|Any CPU.Build.0 = Release|Any CPU
{2937CBEC-262D-4C94-BE1D-291FAB72E3E8}.Release|x86.ActiveCfg = Release|Any CPU
{2937CBEC-262D-4C94-BE1D-291FAB72E3E8}.Release|x86.Build.0 = Release|Any CPU
{C2F38485-5F87-4986-985B-55D7ED96D5CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{C2F38485-5F87-4986-985B-55D7ED96D5CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{C2F38485-5F87-4986-985B-55D7ED96D5CE}.Debug|x86.ActiveCfg = Debug|Any CPU
{C2F38485-5F87-4986-985B-55D7ED96D5CE}.Debug|x86.Build.0 = Debug|Any CPU
{C2F38485-5F87-4986-985B-55D7ED96D5CE}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
{C2F38485-5F87-4986-985B-55D7ED96D5CE}.Proto|Any CPU.Build.0 = Debug|Any CPU
{C2F38485-5F87-4986-985B-55D7ED96D5CE}.Proto|x86.ActiveCfg = Debug|Any CPU
{C2F38485-5F87-4986-985B-55D7ED96D5CE}.Proto|x86.Build.0 = Debug|Any CPU
{C2F38485-5F87-4986-985B-55D7ED96D5CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{C2F38485-5F87-4986-985B-55D7ED96D5CE}.Release|Any CPU.Build.0 = Release|Any CPU
{C2F38485-5F87-4986-985B-55D7ED96D5CE}.Release|x86.ActiveCfg = Release|Any CPU
{C2F38485-5F87-4986-985B-55D7ED96D5CE}.Release|x86.Build.0 = Release|Any CPU
{0610FB97-7C15-422A-86FD-32335C6DF14D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{0610FB97-7C15-422A-86FD-32335C6DF14D}.Debug|Any CPU.Build.0 = Debug|Any CPU
{0610FB97-7C15-422A-86FD-32335C6DF14D}.Debug|x86.ActiveCfg = Debug|Any CPU
......@@ -1016,7 +988,6 @@ Global
{E93E7D28-1C6B-4E04-BE83-68428CF7E039} = {6235B3AF-774D-4EA1-8F37-789E767F6368}
{9482211E-23D0-4BD0-9893-E4AA5559F67A} = {6235B3AF-774D-4EA1-8F37-789E767F6368}
{04C59F6E-1C76-4F6A-AC21-2EA7F296A1B8} = {647810D0-5307-448F-99A2-E83917010DAE}
{20B7BC36-CF51-4D75-9E13-66681C07977F} = {B8DDA694-7939-42E3-95E5-265C2217C142}
{09F56540-AFA5-4694-B7A6-0DBF6D4618C2} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{DFA30881-C0B1-4813-B087-C21B5AF9B77F} = {3881429D-A97A-49EB-B7AE-A82BA5FE9C77}
{AA259A37-418F-4E18-87B2-C7D5F8C26CC4} = {4C7B48D7-19AF-4AE7-9D1D-3BB289D5480D}
......@@ -1024,7 +995,6 @@ Global
{44155269-9B30-43DA-B97F-4F36F887B211} = {12EF27FD-A34B-4373-860A-F9FCE9651859}
{B53D9D05-8EF7-43A6-9A5B-0B113CBC54F8} = {12EF27FD-A34B-4373-860A-F9FCE9651859}
{2937CBEC-262D-4C94-BE1D-291FAB72E3E8} = {12EF27FD-A34B-4373-860A-F9FCE9651859}
{C2F38485-5F87-4986-985B-55D7ED96D5CE} = {3058BC79-8E79-4645-B05D-48CC182FA8A6}
{0610FB97-7C15-422A-86FD-32335C6DF14D} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
{B5A9BBD9-2F45-4722-A6CA-BAE3C64CD4E2} = {3881429D-A97A-49EB-B7AE-A82BA5FE9C77}
{14F3D3D6-5C8E-43C2-98A2-17EA704D4DEA} = {CFE3259A-2D30-4EB0-80D5-E8B5F3D01449}
......
......@@ -70,10 +70,10 @@ The following are the key phases and high-level logical operations of the F# com
* _Parsing_. Accepts a token stream and produces an AST per the grammar in the F# Language Specification.
* _Resolving references_. For .NET SDK generally references are resolved explicitly by external tooling.
* _Resolving references_. For .NET SDK generally references are resolved explicitly by external tooling.
There is a legacy aspect to this if references use old .NET Framework references including for
scripting. See [ReferenceResolver.fs](https://github.com/dotnet/fsharp/blob/master/src/fsharp/ReferenceResolver.fs) for the abstract definition of compiler reference resolution. See [LegacyMSBuildReferenceResolver.fs](https://github.com/dotnet/fsharp/blob/master/src/fsharp/LegacyMSBuildReferenceResolver.fs) for reference resolution used by the .NET Framework F# compiler when running on .NET Framework. See [SimulatedMSBuildReferenceResolver.fs](https://github.com/dotnet/fsharp/blob/master/src/fsharp/SimulatedMSBuildReferenceResolver.fs) when not using the .NET Framework F# compiler.
See [Microsoft.DotNet.DependencyManager](https://github.com/dotnet/fsharp/tree/master/src/fsharp/Microsoft.DotNet.DependencyManager) for reference resolution and package management used in `fsi`.
See [FSharp.Compiler.DependencyManager](https://github.com/dotnet/fsharp/tree/master/src/fsharp/FSharp.Compiler.DependencyManager) for reference resolution and package management used in `fsi`.
* _Importing referenced .NET binaries_, see [import.fsi](https://github.com/dotnet/fsharp/blob/master/src/fsharp/import.fsi)/[import.fs](https://github.com/dotnet/fsharp/blob/master/src/fsharp/import.fs). Accepts file references and produces a Typed Tree node for each referenced assembly, including information about its type definitions (and type forwarders if any).
......
......@@ -26,9 +26,8 @@ try {
$FscAssemblyDir = Get-ChildItem -Path $ArtifactsBinDir -Filter "fsc"
$FsiAssemblyDir = Get-ChildItem -Path $ArtifactsBinDir -Filter "fsi"
$FsiAnyCpuAssemblyDir = Get-ChildItem -Path $ArtifactsBinDir -Filter "fsiAnyCpu"
$DmAssemblyDir = Get-ChildItem -Path $ArtifactsBinDir -Filter "Microsoft.DotNet.DependencyManager"
$ProjectSystemAssemblyDirs = Get-ChildItem -Path $ArtifactsBinDir -Filter "ProjectSystem*"
$FSharpDirs = @($FSharpAssemblyDirs) + @($FscAssemblyDir) + @($FsiAssemblyDir) + @($FsiAnyCpuAssemblyDir) + @($DmAssemblyDir) + @($ProjectSystemAssemblyDirs)
$FSharpDirs = @($FSharpAssemblyDirs) + @($FscAssemblyDir) + @($FsiAssemblyDir) + @($FsiAnyCpuAssemblyDir) + @($ProjectSystemAssemblyDirs)
$FSharpDllPaths = $FSharpDirs | ForEach-Object { Get-ChildItem -Path (Join-Path $ArtifactsBinDir $_) -Recurse -Filter "*.dll" } | ForEach-Object { $_.FullName }
$FSharpExePaths = $FSharpDirs | ForEach-Object { Get-ChildItem -Path (Join-Path $ArtifactsBinDir $_) -Recurse -Filter "*.exe" } | ForEach-Object { $_.FullName }
$FSharpAssemblyPaths = @($FSharpDllPaths) + @($FSharpExePaths)
......
......@@ -22,6 +22,7 @@ open FSharp.Compiler.AbstractIL.ILPdbWriter
open FSharp.Compiler.AbstractIL.Internal
open FSharp.Compiler.AbstractIL.Internal.Library
open FSharp.Compiler.AbstractIL.Internal.Utils
open FSharp.Compiler.DependencyManager
open FSharp.Compiler.ErrorLogger
open FSharp.Compiler.Features
open FSharp.Compiler.Lib
......@@ -30,7 +31,6 @@ open FSharp.Compiler.Text
open FSharp.Compiler.Text.Range
open FSharp.Compiler.TypedTree
open Microsoft.DotNet.DependencyManager
#if !NO_EXTENSIONTYPING
open FSharp.Compiler.ExtensionTyping
......
......@@ -13,13 +13,12 @@ open FSharp.Compiler.AbstractIL.ILBinaryReader
open FSharp.Compiler.AbstractIL.ILPdbWriter
open FSharp.Compiler.AbstractIL.Internal
open FSharp.Compiler.AbstractIL.Internal.Library
open FSharp.Compiler.DependencyManager
open FSharp.Compiler.ErrorLogger
open FSharp.Compiler.Features
open FSharp.Compiler.SourceCodeServices
open FSharp.Compiler.Text
open Microsoft.DotNet.DependencyManager
exception FileNameNotResolved of (*filename*) string * (*description of searched locations*) string * range
exception LoadedSourceNotFoundIgnoring of (*filename*) string * range
......
......@@ -25,6 +25,7 @@ open FSharp.Compiler.AbstractIL.Diagnostics
open FSharp.Compiler.CheckDeclarations
open FSharp.Compiler.CompilerGlobalState
open FSharp.Compiler.CompilerConfig
open FSharp.Compiler.DependencyManager
open FSharp.Compiler.ErrorLogger
open FSharp.Compiler.Import
open FSharp.Compiler.Lib
......@@ -40,8 +41,6 @@ open FSharp.Compiler.TypedTreeOps
open FSharp.Compiler.TcGlobals
open FSharp.Compiler.XmlDoc
open Microsoft.DotNet.DependencyManager
#if !NO_EXTENSIONTYPING
open FSharp.Compiler.ExtensionTyping
open FSharp.Core.CompilerServices
......
......@@ -11,6 +11,7 @@ open FSharp.Compiler.AbstractIL.IL
open FSharp.Compiler.AbstractIL.Internal.Library
open FSharp.Compiler.CheckExpressions
open FSharp.Compiler.CompilerConfig
open FSharp.Compiler.DependencyManager
open FSharp.Compiler.ErrorLogger
open FSharp.Compiler.TypedTree
open FSharp.Compiler.TypedTreeOps
......@@ -22,8 +23,6 @@ open FSharp.Core.CompilerServices
open FSharp.Compiler.ExtensionTyping
#endif
open Microsoft.DotNet.DependencyManager
/// This exception is an old-style way of reporting a diagnostic
exception AssemblyNotResolved of (*originalName*) string * range
......
// Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace Microsoft.DotNet.DependencyManager
namespace FSharp.Compiler.DependencyManager
open System
open System.IO
......
// Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace Microsoft.DotNet.DependencyManager
namespace FSharp.Compiler.DependencyManager
open System
......
// Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace Microsoft.DotNet.DependencyManager
namespace FSharp.Compiler.DependencyManager
open System
open System.IO
......@@ -315,7 +315,7 @@ type DependencyProvider (assemblyProbingPaths: AssemblyResolutionProbe, nativePr
with
| e ->
let e = stripTieWrapper e
let n, m = DependencyManager.SR.couldNotLoadDependencyManagerExtension(path,e.Message)
let n, m = FSComp.SR.couldNotLoadDependencyManagerExtension(path,e.Message)
reportError.Invoke(ErrorReportType.Warning, n, m)
None)
|> Seq.filter (fun a -> assemblyHasAttribute a dependencyManagerAttributeName)
......@@ -365,7 +365,7 @@ type DependencyProvider (assemblyProbingPaths: AssemblyResolutionProbe, nativePr
member _.CreatePackageManagerUnknownError (compilerTools: string seq, outputDir: string, packageManagerKey: string, reportError: ResolvingErrorReport) =
let registeredKeys = String.Join(", ", RegisteredDependencyManagers compilerTools (Option.ofString outputDir) reportError |> Seq.map (fun kv -> kv.Value.Key))
let searchPaths = assemblySearchPaths.Force()
DependencyManager.SR.packageManagerUnknown(packageManagerKey, String.Join(", ", searchPaths, compilerTools), registeredKeys)
FSComp.SR.packageManagerUnknown(packageManagerKey, String.Join(", ", searchPaths, compilerTools), registeredKeys)
/// Fetch a dependencymanager that supports a specific key
member this.TryFindDependencyManagerInPath (compilerTools: string seq, outputDir: string, reportError: ResolvingErrorReport, path: string): string * IDependencyManagerProvider =
......@@ -385,7 +385,7 @@ type DependencyProvider (assemblyProbingPaths: AssemblyResolutionProbe, nativePr
with
| e ->
let e = stripTieWrapper e
let err, msg = DependencyManager.SR.packageManagerError(e.Message)
let err, msg = FSComp.SR.packageManagerError(e.Message)
reportError.Invoke(ErrorReportType.Error, err, msg)
null, Unchecked.defaultof<IDependencyManagerProvider>
......@@ -399,7 +399,7 @@ type DependencyProvider (assemblyProbingPaths: AssemblyResolutionProbe, nativePr
with
| e ->
let e = stripTieWrapper e
let err, msg = DependencyManager.SR.packageManagerError(e.Message)
let err, msg = FSComp.SR.packageManagerError(e.Message)
reportError.Invoke(ErrorReportType.Error, err, msg)
Unchecked.defaultof<IDependencyManagerProvider>
......@@ -429,7 +429,7 @@ type DependencyProvider (assemblyProbingPaths: AssemblyResolutionProbe, nativePr
with e ->
let e = stripTieWrapper e
Error (DependencyManager.SR.packageManagerError(e.Message))
Error (FSComp.SR.packageManagerError(e.Message))
))
match result with
| Ok res ->
......
// Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
/// Helper members to integrate DependencyManagers into F# codebase
namespace Microsoft.DotNet.DependencyManager
namespace FSharp.Compiler.DependencyManager
open System.Runtime.InteropServices
......
// Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace Microsoft.DotNet.DependencyManager
namespace FSharp.Compiler.DependencyManager
open System
open System.Collections.Concurrent
......
// Copyright (c) Microsoft Corporation. All Rights Reserved. Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
namespace Microsoft.DotNet.DependencyManager
namespace FSharp.Compiler.DependencyManager
open System
......
......@@ -1552,4 +1552,4 @@ forFormatInvalidForInterpolated4,"Interpolated strings used as type IFormattable
3390,xmlDocDuplicateParameter,"This XML comment is invalid: multiple documentation entries for parameter '%s'"
3390,xmlDocUnresolvedCrossReference,"This XML comment is invalid: unresolved cross-reference '%s'"
3390,xmlDocMissingParameter,"This XML comment is incomplete: no documentation for parameter '%s'"
3391,tcLiteralAttributeCannotUseActivePattern,"A [<Literal>] declaration cannot use an active pattern for its identifier"
\ No newline at end of file
3391,tcLiteralAttributeCannotUseActivePattern,"A [<Literal>] declaration cannot use an active pattern for its identifier"
<Project>
<PropertyGroup>
<UseFSharpProductVersion>true</UseFSharpProductVersion>
</PropertyGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
</Project>
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<TargetFramework>netstandard2.0</TargetFramework>
<IsPackable>true</IsPackable>
<PackageDescription>Provides embedding F# language scripting.</PackageDescription>
<PackageReleaseNotes>/blob/main/release-notes.md#FSharp-Tools-$(FSProductVersionReleaseNotesVersion)</PackageReleaseNotes>
<NuspecFile>FSharp.Compiler.Private.Scripting.nuspec</NuspecFile>
<ExcludeFromSourceBuild>true</ExcludeFromSourceBuild>
</PropertyGroup>
<ItemGroup>
<Compile Include="FSharpScript.fs" />
</ItemGroup>
<ItemGroup>
<NuspecProperty Include="FsharpCorePackageVersion=$(FSCorePackageVersion)" Condition="'$(VersionSuffix)'==''" />
<NuspecProperty Include="FsharpCorePackageVersion=$(FSCorePackageVersion)-$(VersionSuffix)" Condition="'$(VersionSuffix)'!=''" />
<NuspecProperty Include="TargetFramework=$(TargetFramework)" />
<NuspecProperty Include="SystemCollectionsImmutablePackageVersion=$(SystemCollectionsImmutableVersion)" />
<NuspecProperty Include="SystemReflectionMetadataPackageVersion=$(SystemReflectionMetadataVersion)" />
<NuspecProperty Include="MicrosoftBuildFrameworkPackageVersion=$(MicrosoftBuildFrameworkVersion)" />
<NuspecProperty Include="MicrosoftBuildTasksCorePackageVersion=$(MicrosoftBuildTasksCoreVersion)" />
<NuspecProperty Include="MicrosoftBuildUtilitiesCorePackageVersion=$(MicrosoftBuildUtilitiesCoreVersion)" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(MSBuildThisFileDirectory)..\FSharp.Core\FSharp.Core.fsproj" />
<ProjectReference Include="$(MSBuildThisFileDirectory)..\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj" />
<ProjectReference Include="$(MSBuildThisFileDirectory)..\FSharp.Compiler.Interactive.Settings\FSharp.Compiler.Interactive.Settings.fsproj" />
</ItemGroup>
</Project>
<?xml version="1.0"?>
<package xmlns="http://schemas.microsoft.com/packaging/2012/06/nuspec.xsd">
<metadata>
$CommonMetadataElements$
<language>en-US</language>
<dependencies>
<group targetFramework=".NETStandard2.0">
<dependency id="FSharp.Core" version="$FSharpCorePackageVersion$" />
<dependency id="System.Collections.Immutable" version="$SystemCollectionsImmutablePackageVersion$" />
<dependency id="System.Reflection.Metadata" version="$SystemReflectionMetadataPackageVersion$" />
<dependency id="Microsoft.Build.Framework" version="$MicrosoftBuildFrameworkPackageVersion$" />
<dependency id="Microsoft.Build.Tasks.Core" version="$MicrosoftBuildTasksCorePackageVersion$" />
<dependency id="Microsoft.Build.Utilities.Core" version="$MicrosoftBuildUtilitiesCorePackageVersion$" />
</group>
</dependencies>
</metadata>
<files>
$CommonFileElements$
<file src="FSharp.Compiler.Private.Scripting\$Configuration$\$TargetFramework$\FSharp.Compiler.Private.Scripting.dll" target="lib\netstandard2.0" />
<file src="FSharp.Compiler.Private.Scripting\$Configuration$\$TargetFramework$\FSharp.Compiler.Private.Scripting.xml" target="lib\netstandard2.0" />
<file src="FSharp.Compiler.Private.Scripting\$Configuration$\$TargetFramework$\FSharp.Compiler.Service.dll" target="lib\netstandard2.0" />
<file src="FSharp.Compiler.Private.Scripting\$Configuration$\$TargetFramework$\FSharp.Compiler.Service.xml" target="lib\netstandard2.0" />
<file src="FSharp.Compiler.Private.Scripting\$Configuration$\$TargetFramework$\FSharp.DependencyManager.Nuget.dll" target="lib\netstandard2.0" />
<file src="FSharp.Compiler.Private.Scripting\$Configuration$\$TargetFramework$\FSharp.DependencyManager.Nuget.xml" target="lib\netstandard2.0" />
<file src="FSharp.Compiler.Private.Scripting\$Configuration$\netstandard2.0\FSharp.Compiler.Interactive.Settings.dll" target="lib\netstandard2.0" />
<file src="FSharp.Compiler.Private.Scripting\$Configuration$\netstandard2.0\FSharp.Compiler.Interactive.Settings.xml" target="lib\netstandard2.0" />
</files>
</package>
......@@ -99,9 +99,6 @@
<EmbeddedText Include="..\FSComp.txt">
<Link>FSComp.txt</Link>
</EmbeddedText>
<EmbeddedText Include="..\Microsoft.DotNet.DependencyManager\DependencyManager.txt">
<Link>DependencyManager.txt</Link>
</EmbeddedText>
<EmbeddedText Include="..\fsi\FSIstrings.txt">
<Link>FSIstrings.txt</Link>
</EmbeddedText>
......@@ -717,22 +714,22 @@
<Compile Include="..\FxResolver.fs">
<Link>Driver\FxResolver.fs</Link>
</Compile>
<Compile Include="..\Microsoft.DotNet.DependencyManager/AssemblyResolveHandler.fsi">
<Compile Include="..\DependencyManager/AssemblyResolveHandler.fsi">
<Link>Driver\AssemblyResolveHandler.fsi</Link>
</Compile>
<Compile Include="..\Microsoft.DotNet.DependencyManager/AssemblyResolveHandler.fs">
<Compile Include="..\DependencyManager/AssemblyResolveHandler.fs">
<Link>Driver\AssemblyResolveHandler.fs</Link>
</Compile>
<Compile Include="..\Microsoft.DotNet.DependencyManager/NativeDllResolveHandler.fsi">
<Compile Include="..\DependencyManager/NativeDllResolveHandler.fsi">
<Link>Driver\NativeDllResolveHandler.fsi</Link>
</Compile>
<Compile Include="..\Microsoft.DotNet.DependencyManager/NativeDllResolveHandler.fs">
<Compile Include="..\DependencyManager/NativeDllResolveHandler.fs">
<Link>Driver\NativeDllResolveHandler.fs</Link>
</Compile>
<Compile Include="..\Microsoft.DotNet.DependencyManager/DependencyProvider.fsi">
<Compile Include="..\DependencyManager/DependencyProvider.fsi">
<Link>Driver\DependencyProvider.fsi</Link>
</Compile>
<Compile Include="..\Microsoft.DotNet.DependencyManager/DependencyProvider.fs">
<Compile Include="..\DependencyManager/DependencyProvider.fs">
<Link>Driver\DependencyProvider.fs</Link>
</Compile>
<Compile Include="..\CompilerConfig.fsi">
......
......@@ -13,5 +13,3 @@ let o = {| X = 2; Y = "Hello" |}
printfn "%s" (JsonConvert.SerializeObject o)"
```
There are more Dependency Manager extensions, find more about them: [Microsoft.DotNet.DependencyManager](https://github.com/dotnet/fsharp/tree/main/src/fsharp/Microsoft.DotNet.DependencyManager)
# Microsoft.DotNet.DependencyManager resource strings
3400,packageManagerUnknown,"Package manager key '%s' was not registered in %s. Currently registered: %s"
3401,packageManagerError,"%s"
3402,couldNotLoadDependencyManagerExtension,"The dependency manager extension %s could not be loaded. Message: %s"
\ No newline at end of file
<Project>
<PropertyGroup>
<UseFSharpProductVersion>true</UseFSharpProductVersion>
</PropertyGroup>
<Import Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.props', '$(MSBuildThisFileDirectory)../'))" />
</Project>
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. -->
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Library</OutputType>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<IsPackable>true</IsPackable>
<AssemblyName>Microsoft.DotNet.DependencyManager</AssemblyName>
<NoWarn>$(NoWarn);45;55;62;75;1204</NoWarn>
<AllowCrossTargeting>true</AllowCrossTargeting>
<OtherFlags>$(OtherFlags) --warnon:1182 --maxerrors:20 --extraoptimizationloops:1</OtherFlags>
<Tailcalls>true</Tailcalls> <!-- .tail annotations always emitted for this binary, even in debug mode -->
</PropertyGroup>
<Target Name="CopyToBuiltBin" BeforeTargets="BuiltProjectOutputGroup" AfterTargets="CoreCompile">
<PropertyGroup>
<BuildOutputGroupLocation>$(BaseOutputPath)\$(Configuration)\$(TargetFramework)</BuildOutputGroupLocation>
</PropertyGroup>
</Target>
<ItemGroup>
<EmbeddedText Include="DependencyManager.txt" />
<EmbeddedText Include="..\utils\UtilsStrings.txt" />
<Compile Include="..\utils\RidHelpers.fs" />
<Compile Include="..\utils\CompilerLocationUtils.fs" />
<Compile Include="AssemblyResolveHandler.fsi" />
<Compile Include="AssemblyResolveHandler.fs" />
<Compile Include="NativeDllResolveHandler.fsi" />
<Compile Include="NativeDllResolveHandler.fs" />
<Compile Include="DependencyProvider.fsi" />
<Compile Include="DependencyProvider.fs" />
</ItemGroup>
<ItemGroup>
<InternalsVisibleTo Include="FSharp.Compiler.Private.Scripting.UnitTests" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(MSBuildThisFileDirectory)..\FSharp.Core\FSharp.Core.fsproj" />
<PackageReference Include="System.Runtime.Loader" Version="$(SystemRuntimeLoaderVersion)" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.Collections.Immutable" Version="$(SystemCollectionsImmutableVersion)" />
<PackageReference Include="System.Diagnostics.Process" Version="$(SystemDiagnosticsProcessVersion)" />
<PackageReference Include="System.Diagnostics.TraceSource" Version="$(SystemDiagnosticsTraceSourceVersion)" />
<PackageReference Include="System.Linq.Expressions" Version="$(SystemLinqExpressionsVersion)" />
<PackageReference Include="System.Linq.Queryable" Version="$(SystemLinqExpressionsVersion)" />
<PackageReference Include="System.Net.Requests" Version="$(SystemNetRequestsVersion)" />
<PackageReference Include="System.Net.Security" Version="$(SystemNetSecurityVersion)" />
<PackageReference Include="System.Reflection.Emit" Version="$(SystemReflectionEmitVersion)" />
<PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
<PackageReference Include="System.Reflection.TypeExtensions" Version="$(SystemReflectionTypeExtensionsVersion)" />
<PackageReference Include="System.Runtime" Version="$(SystemRuntimeVersion)" />
<PackageReference Include="System.Runtime.InteropServices" Version="$(SystemRuntimeInteropServicesVersion)" />
<PackageReference Include="System.Runtime.Loader" Version="$(SystemRuntimeLoaderVersion)" />
<PackageReference Include="System.Security.Claims" Version="$(SystemSecurityClaimsVersion)" />
<PackageReference Include="System.Security.Cryptography.Algorithms" Version="$(SystemSecurityCryptographyAlgorithmsVersion)" />
<PackageReference Include="System.Security.Principal" Version="$(SystemSecurityPrincipalVersion)" />
<PackageReference Include="System.Threading.Tasks.Parallel" Version="$(SystemThreadingTasksParallelVersion)" />
<PackageReference Include="System.Threading.Thread" Version="$(SystemThreadingThreadVersion)" />
<PackageReference Include="System.Threading.ThreadPool" Version="$(SystemThreadingThreadPoolVersion)" />
</ItemGroup>
</Project>
# `dotnet fsi` Dependency Manager Plugins
Since .NET 5.0, `dotnet fsi` ships with dependency manager plugins support that can be called like so:
```fsharp
#r "myextension: my extension parameters"
```
# `#r "nuget:"` [nuget](https://github.com/dotnet/fsharp/tree/main/src/fsharp/FSharp.DependencyManager.Nuget)
Reference nuget packages, ships by default with `dotnet fsi`.
```fsharp
#r "nuget: Newtonsoft.Json"
// Optionally, specify a version explicitly
// #r "nuget: Newtonsoft.Json,11.0.1"
open Newtonsoft.Json
let o = {| X = 2; Y = "Hello" |}
printfn "%s" (JsonConvert.SerializeObject o)
```
# `#r "paket:"` [paket](https://fsprojects.github.io/Paket/fsi-integration.html)
Reference dependencies (nuget, git, gist, github) through [Paket package manager](https://fsprojects.github.io/Paket).
Learn how to use [Paket FSI integration](https://fsprojects.github.io/Paket/fsi-integration.html).
```fsharp
#r "paket: nuget FSharp.Data"
open FSharp.Data
type MyCsv = CsvProvider<"""
X,Y
2,Hello
4,World
""">
for r in MyCsv.GetSample().Rows do
printfn "%i = %s" r.X r.Y
```
......@@ -54,9 +54,7 @@
<file src="FSharp.Build\$Configuration$\netstandard2.0\FSharp.Build.dll" target="lib\netcoreapp3.1" />
<file src="FSharp.DependencyManager.Nuget\$configuration$\netstandard2.0\FSharp.DependencyManager.Nuget.dll"
target="lib\netcoreapp3.1" />
<file src="Microsoft.DotNet.DependencyManager\$configuration$\netstandard2.0\Microsoft.DotNet.DependencyManager.dll"
target="lib\netcoreapp3.1" />
<file src="FSharp.Compiler.Interactive.Settings\$Configuration$\netstandard2.0\FSharp.Compiler.Interactive.Settings.dll"
<file src="FSharp.Compiler.Interactive.Settings\$Configuration$\netstandard2.0\FSharp.Compiler.Interactive.Settings.dll"
target="lib\netcoreapp3.1" />
<!-- additional files -->
......@@ -76,7 +74,5 @@
<file src="FSharp.Build\$Configuration$\netstandard2.0\**\FSharp.Build.resources.dll" target="lib\netcoreapp3.1" />
<file src="FSharp.DependencyManager.Nuget\$configuration$\netstandard2.0\**\FSharp.DependencyManager.Nuget.resources.dll"
target="lib\netcoreapp3.1" />
<file src="Microsoft.DotNet.DependencyManager\$Configuration$\netstandard2.0\**\Microsoft.DotNet.DependencyManager.resources.dll"
target="lib\netcoreapp3.1" />
</files>
</package>
......@@ -10,12 +10,12 @@ open FSharp.Compiler.CheckDeclarations
open FSharp.Compiler.CompilerGlobalState
open FSharp.Compiler.CompilerConfig
open FSharp.Compiler.CompilerImports
open FSharp.Compiler.DependencyManager
open FSharp.Compiler.ErrorLogger
open FSharp.Compiler.SyntaxTree
open FSharp.Compiler.TcGlobals
open FSharp.Compiler.Text
open FSharp.Compiler.TypedTree
open Microsoft.DotNet.DependencyManager
val IsScript: string -> bool
......
......@@ -14,6 +14,7 @@ open FSharp.Compiler.AbstractIL.Internal.Library
open FSharp.Compiler.CompilerConfig
open FSharp.Compiler.CompilerDiagnostics
open FSharp.Compiler.CompilerImports
open FSharp.Compiler.DependencyManager
open FSharp.Compiler.ErrorLogger
open FSharp.Compiler.Lib
open FSharp.Compiler.ParseAndCheckInputs
......@@ -22,8 +23,6 @@ open FSharp.Compiler.SyntaxTree
open FSharp.Compiler.Text
open FSharp.Compiler.Text.Range
open Microsoft.DotNet.DependencyManager
[<RequireQualifiedAccess>]
type LoadClosureInput =
{ FileName: string
......
......@@ -8,10 +8,10 @@ open FSharp.Compiler.AbstractIL.ILBinaryReader
open FSharp.Compiler.AbstractIL.Internal.Library
open FSharp.Compiler.CompilerConfig
open FSharp.Compiler.CompilerImports
open FSharp.Compiler.DependencyManager
open FSharp.Compiler.ErrorLogger
open FSharp.Compiler.SyntaxTree
open FSharp.Compiler.Text
open Microsoft.DotNet.DependencyManager
[<RequireQualifiedAccess>]
type CodeContext =
......
......@@ -37,6 +37,7 @@ open FSharp.Compiler.CompilerImports
open FSharp.Compiler.CompilerOptions
open FSharp.Compiler.CompilerGlobalState
open FSharp.Compiler.CreateILModule
open FSharp.Compiler.DependencyManager
open FSharp.Compiler.ErrorLogger
open FSharp.Compiler.IlxGen
open FSharp.Compiler.InfoReader
......@@ -55,7 +56,6 @@ open FSharp.Compiler.TypedTreeOps
open FSharp.Compiler.TcGlobals
open FSharp.Compiler.XmlDocFileWriter
open FSharp.Compiler.StaticLinking
open Microsoft.DotNet.DependencyManager
//----------------------------------------------------------------------------
// Reporting - warnings, errors
......
......@@ -36,6 +36,7 @@ open FSharp.Compiler.CompilerConfig
open FSharp.Compiler.CompilerDiagnostics
open FSharp.Compiler.CompilerImports
open FSharp.Compiler.CompilerGlobalState
open FSharp.Compiler.DependencyManager
open FSharp.Compiler.ErrorLogger
open FSharp.Compiler.Features
open FSharp.Compiler.IlxGen
......@@ -61,8 +62,6 @@ open FSharp.Compiler.TcGlobals
open FSharp.Compiler.XmlDoc
open Internal.Utilities
open Microsoft.DotNet.DependencyManager
// Prevents warnings of experimental APIs - we are using FSharpLexer
#nowarn "57"
......
......@@ -22,6 +22,7 @@ open FSharp.Compiler.CompilerGlobalState
open FSharp.Compiler.CompilerImports
open FSharp.Compiler.CompilerOptions
open FSharp.Compiler.CreateILModule
open FSharp.Compiler.DependencyManager
open FSharp.Compiler.ErrorLogger
open FSharp.Compiler.NameResolution
open FSharp.Compiler.ParseAndCheckInputs
......@@ -33,8 +34,6 @@ open FSharp.Compiler.Text.Range
open FSharp.Compiler.TypedTree
open FSharp.Compiler.TypedTreeOps
open Microsoft.DotNet.DependencyManager
open Internal.Utilities
open Internal.Utilities.Collections
......
......@@ -10,6 +10,7 @@ open FSharp.Compiler.AbstractIL.Internal.Library
open FSharp.Compiler.CheckDeclarations
open FSharp.Compiler.CompilerConfig
open FSharp.Compiler.CompilerImports
open FSharp.Compiler.DependencyManager
open FSharp.Compiler.ErrorLogger
open FSharp.Compiler.NameResolution
open FSharp.Compiler.ParseAndCheckInputs
......@@ -20,8 +21,6 @@ open FSharp.Compiler.TcGlobals
open FSharp.Compiler.Text
open FSharp.Compiler.TypedTree
open Microsoft.DotNet.DependencyManager
/// Lookup the global static cache for building the FrameworkTcImports
type internal FrameworkImportsCache =
new : size: int -> FrameworkImportsCache
......
......@@ -18,6 +18,7 @@ open FSharp.Compiler.CompilerConfig
open FSharp.Compiler.CompilerDiagnostics
open FSharp.Compiler.CompilerImports
open FSharp.Compiler.CompilerOptions
open FSharp.Compiler.DependencyManager
open FSharp.Compiler.Driver
open FSharp.Compiler.ErrorLogger
open FSharp.Compiler.Lib
......@@ -28,8 +29,6 @@ open FSharp.Compiler.ScriptClosure
open FSharp.Compiler.SyntaxTree
open FSharp.Compiler.TcGlobals
open Microsoft.DotNet.DependencyManager
open Internal.Utilities
open Internal.Utilities.Collections
......
......@@ -4,7 +4,7 @@ namespace FSharp.Compiler.Scripting.UnitTests
open System
open System.Threading.Tasks
open FSharp.Compiler.Scripting
open FSharp.Test.ScriptHelpers
open Xunit
type CompletionTests() =
......
namespace FSharp.Compiler.Scripting.UnitTests
open System
open System.Collections.Generic
open System.IO
open System.Text
type internal CapturedTextReader() =
inherit TextReader()
let queue = Queue<char>()
member _.ProvideInput(text: string) =
for c in text.ToCharArray() do
queue.Enqueue(c)
override _.Peek() =
if queue.Count > 0 then queue.Peek() |> int else -1
override _.Read() =
if queue.Count > 0 then queue.Dequeue() |> int else -1
type internal RedirectConsoleInput() =
let oldStdIn = Console.In
let newStdIn = new CapturedTextReader()
do Console.SetIn(newStdIn)
member _.ProvideInput(text: string) =
newStdIn.ProvideInput(text)
interface IDisposable with
member _.Dispose() =
Console.SetIn(oldStdIn)
newStdIn.Dispose()
type internal EventedTextWriter() =
inherit TextWriter()
let sb = StringBuilder()
let lineWritten = Event<string>()
member _.LineWritten = lineWritten.Publish
override _.Encoding = Encoding.UTF8
override _.Write(c: char) =
if c = '\n' then
let line =
let v = sb.ToString()
if v.EndsWith("\r") then v.Substring(0, v.Length - 1)
else v
sb.Clear() |> ignore
lineWritten.Trigger(line)
else sb.Append(c) |> ignore
type internal RedirectConsoleOutput() =
let outputProduced = Event<string>()
let errorProduced = Event<string>()
let oldStdOut = Console.Out
let oldStdErr = Console.Error
let newStdOut = new EventedTextWriter()
let newStdErr = new EventedTextWriter()
do newStdOut.LineWritten.Add outputProduced.Trigger
do newStdErr.LineWritten.Add errorProduced.Trigger
do Console.SetOut(newStdOut)
do Console.SetError(newStdErr)
member _.OutputProduced = outputProduced.Publish
member _.ErrorProduced = errorProduced.Publish
interface IDisposable with
member _.Dispose() =
Console.SetOut(oldStdOut)
Console.SetError(oldStdErr)
newStdOut.Dispose()
newStdErr.Dispose()
......@@ -9,11 +9,10 @@ open System.Runtime.InteropServices
open System.Threading
open FSharp.Compiler.Interactive.Shell
open FSharp.Compiler.Scripting
open FSharp.Compiler.SourceCodeServices
open FSharp.Compiler.Scripting.UnitTests
open FSharp.Compiler.DependencyManager
open FSharp.Test.ScriptHelpers
open FSharp.DependencyManager.Nuget
open Microsoft.DotNet.DependencyManager
open Internal.Utilities
......@@ -814,7 +813,7 @@ x |> Seq.iter(fun r ->
let report errorType code message =
match errorType with
| ErrorReportType.Error ->
if code = 3401 then foundCorrectError <- true
if code = 3217 then foundCorrectError <- true
else foundWrongError <- true
| ErrorReportType.Warning -> printfn "PackageManagementWarning %d : %s" code message
ResolvingErrorReport (report)
......@@ -837,7 +836,7 @@ x |> Seq.iter(fun r ->
let report errorType code message =
match errorType with
| ErrorReportType.Error ->
if code = 3401 then foundCorrectError <- true
if code = 3217 then foundCorrectError <- true
else foundWrongError <- true
| ErrorReportType.Warning -> printfn "PackageManagementWarning %d : %s" code message
ResolvingErrorReport (report)
......
......@@ -11,9 +11,7 @@
</PropertyGroup>
<ItemGroup>
<Compile Include="ConsoleHelpers.fs" />
<Compile Include="$(FSharpSourcesRoot)\fsharp\utils\RidHelpers.fs" />
<Compile Include="TestHelpers.fs" />
<Compile Include="DependencyManagerInteractiveTests.fs" />
<Compile Include="DependencyManagerLineParserTests.fs" />
<Compile Include="FSharpScriptTests.fs" />
......@@ -26,10 +24,9 @@
</ItemGroup>
<ItemGroup>
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj" />
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\FSharp.Core\FSharp.Core.fsproj" />
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\FSharp.Compiler.Private.Scripting\FSharp.Compiler.Private.Scripting.fsproj" />
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\Microsoft.DotNet.DependencyManager\Microsoft.DotNet.DependencyManager.fsproj" />
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\FSharp.DependencyManager.Nuget\FSharp.DependencyManager.Nuget.fsproj" />
<ProjectReference Include="$(FSharpTestsRoot)\FSharp.Test.Utilities\FSharp.Test.Utilities.fsproj" />
</ItemGroup>
</Project>
......@@ -10,7 +10,7 @@ open System.Runtime.InteropServices
open System.Threading
open System.Threading.Tasks
open FSharp.Compiler.Interactive.Shell
open FSharp.Compiler.Scripting
open FSharp.Test.ScriptHelpers
open Xunit
......
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
namespace FSharp.Compiler.Scripting.UnitTests
open System
open System.IO
open FSharp.Compiler.Interactive.Shell
open FSharp.Compiler.SourceCodeServices
[<AutoOpen>]
module TestHelpers =
let getValue ((value: Result<FsiValue option, exn>), (errors: FSharpDiagnostic[])) =
if errors.Length > 0 then
failwith <| sprintf "Evaluation returned %d errors:\r\n\t%s" errors.Length (String.Join("\r\n\t", errors))
match value with
| Ok(value) -> value
| Error ex -> raise ex
let ignoreValue = getValue >> ignore
let getTempDir () =
let sysTempDir = Path.GetTempPath()
let customTempDirName = Guid.NewGuid().ToString("D")
let fullDirName = Path.Combine(sysTempDir, customTempDirName)
let dirInfo = Directory.CreateDirectory(fullDirName)
{ new Object() with
member _.ToString() = dirInfo.FullName
interface IDisposable with
member _.Dispose() =
dirInfo.Delete(true)
}
......@@ -9949,76 +9949,76 @@ FSharp.Compiler.XmlDoc+XmlDoc: XmlDoc Merge(XmlDoc, XmlDoc)
FSharp.Compiler.XmlDoc+XmlDoc: XmlDoc get_Empty()
FSharp.Compiler.XmlDoc: FSharp.Compiler.XmlDoc+PreXmlDoc
FSharp.Compiler.XmlDoc: FSharp.Compiler.XmlDoc+XmlDoc
Microsoft.DotNet.DependencyManager.AssemblyResolutionProbe
Microsoft.DotNet.DependencyManager.AssemblyResolutionProbe: System.Collections.Generic.IEnumerable`1[System.String] EndInvoke(System.IAsyncResult)
Microsoft.DotNet.DependencyManager.AssemblyResolutionProbe: System.Collections.Generic.IEnumerable`1[System.String] Invoke()
Microsoft.DotNet.DependencyManager.AssemblyResolutionProbe: System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)
Microsoft.DotNet.DependencyManager.AssemblyResolutionProbe: Void .ctor(System.Object, IntPtr)
Microsoft.DotNet.DependencyManager.AssemblyResolveHandler
Microsoft.DotNet.DependencyManager.AssemblyResolveHandler: Void .ctor(Microsoft.DotNet.DependencyManager.AssemblyResolutionProbe)
Microsoft.DotNet.DependencyManager.DependencyProvider
Microsoft.DotNet.DependencyManager.DependencyProvider: Microsoft.DotNet.DependencyManager.IDependencyManagerProvider TryFindDependencyManagerByKey(System.Collections.Generic.IEnumerable`1[System.String], System.String, Microsoft.DotNet.DependencyManager.ResolvingErrorReport, System.String)
Microsoft.DotNet.DependencyManager.DependencyProvider: Microsoft.DotNet.DependencyManager.IResolveDependenciesResult Resolve(Microsoft.DotNet.DependencyManager.IDependencyManagerProvider, System.String, System.Collections.Generic.IEnumerable`1[System.Tuple`2[System.String,System.String]], Microsoft.DotNet.DependencyManager.ResolvingErrorReport, System.String, System.String, System.String, System.String, System.String, Int32)
Microsoft.DotNet.DependencyManager.DependencyProvider: System.String[] GetRegisteredDependencyManagerHelpText(System.Collections.Generic.IEnumerable`1[System.String], System.String, Microsoft.DotNet.DependencyManager.ResolvingErrorReport)
Microsoft.DotNet.DependencyManager.DependencyProvider: System.Tuple`2[System.Int32,System.String] CreatePackageManagerUnknownError(System.Collections.Generic.IEnumerable`1[System.String], System.String, System.String, Microsoft.DotNet.DependencyManager.ResolvingErrorReport)
Microsoft.DotNet.DependencyManager.DependencyProvider: System.Tuple`2[System.String,Microsoft.DotNet.DependencyManager.IDependencyManagerProvider] TryFindDependencyManagerInPath(System.Collections.Generic.IEnumerable`1[System.String], System.String, Microsoft.DotNet.DependencyManager.ResolvingErrorReport, System.String)
Microsoft.DotNet.DependencyManager.DependencyProvider: Void .ctor()
Microsoft.DotNet.DependencyManager.DependencyProvider: Void .ctor(Microsoft.DotNet.DependencyManager.AssemblyResolutionProbe, Microsoft.DotNet.DependencyManager.NativeResolutionProbe)
Microsoft.DotNet.DependencyManager.DependencyProvider: Void .ctor(Microsoft.DotNet.DependencyManager.NativeResolutionProbe)
Microsoft.DotNet.DependencyManager.ErrorReportType
Microsoft.DotNet.DependencyManager.ErrorReportType+Tags: Int32 Error
Microsoft.DotNet.DependencyManager.ErrorReportType+Tags: Int32 Warning
Microsoft.DotNet.DependencyManager.ErrorReportType: Boolean Equals(Microsoft.DotNet.DependencyManager.ErrorReportType)
Microsoft.DotNet.DependencyManager.ErrorReportType: Boolean Equals(System.Object)
Microsoft.DotNet.DependencyManager.ErrorReportType: Boolean Equals(System.Object, System.Collections.IEqualityComparer)
Microsoft.DotNet.DependencyManager.ErrorReportType: Boolean IsError
Microsoft.DotNet.DependencyManager.ErrorReportType: Boolean IsWarning
Microsoft.DotNet.DependencyManager.ErrorReportType: Boolean get_IsError()
Microsoft.DotNet.DependencyManager.ErrorReportType: Boolean get_IsWarning()
Microsoft.DotNet.DependencyManager.ErrorReportType: Int32 CompareTo(Microsoft.DotNet.DependencyManager.ErrorReportType)
Microsoft.DotNet.DependencyManager.ErrorReportType: Int32 CompareTo(System.Object)
Microsoft.DotNet.DependencyManager.ErrorReportType: Int32 CompareTo(System.Object, System.Collections.IComparer)
Microsoft.DotNet.DependencyManager.ErrorReportType: Int32 GetHashCode()
Microsoft.DotNet.DependencyManager.ErrorReportType: Int32 GetHashCode(System.Collections.IEqualityComparer)
Microsoft.DotNet.DependencyManager.ErrorReportType: Int32 Tag
Microsoft.DotNet.DependencyManager.ErrorReportType: Int32 get_Tag()
Microsoft.DotNet.DependencyManager.ErrorReportType: Microsoft.DotNet.DependencyManager.ErrorReportType Error
Microsoft.DotNet.DependencyManager.ErrorReportType: Microsoft.DotNet.DependencyManager.ErrorReportType Warning
Microsoft.DotNet.DependencyManager.ErrorReportType: Microsoft.DotNet.DependencyManager.ErrorReportType get_Error()
Microsoft.DotNet.DependencyManager.ErrorReportType: Microsoft.DotNet.DependencyManager.ErrorReportType get_Warning()
Microsoft.DotNet.DependencyManager.ErrorReportType: Microsoft.DotNet.DependencyManager.ErrorReportType+Tags
Microsoft.DotNet.DependencyManager.ErrorReportType: System.String ToString()
Microsoft.DotNet.DependencyManager.IDependencyManagerProvider
Microsoft.DotNet.DependencyManager.IDependencyManagerProvider: Microsoft.DotNet.DependencyManager.IResolveDependenciesResult ResolveDependencies(System.String, System.String, System.String, System.String, System.Collections.Generic.IEnumerable`1[System.Tuple`2[System.String,System.String]], System.String, System.String, Int32)
Microsoft.DotNet.DependencyManager.IDependencyManagerProvider: System.String Key
Microsoft.DotNet.DependencyManager.IDependencyManagerProvider: System.String Name
Microsoft.DotNet.DependencyManager.IDependencyManagerProvider: System.String get_Key()
Microsoft.DotNet.DependencyManager.IDependencyManagerProvider: System.String get_Name()
Microsoft.DotNet.DependencyManager.IDependencyManagerProvider: System.String[] HelpMessages
Microsoft.DotNet.DependencyManager.IDependencyManagerProvider: System.String[] get_HelpMessages()
Microsoft.DotNet.DependencyManager.IResolveDependenciesResult
Microsoft.DotNet.DependencyManager.IResolveDependenciesResult: Boolean Success
Microsoft.DotNet.DependencyManager.IResolveDependenciesResult: Boolean get_Success()
Microsoft.DotNet.DependencyManager.IResolveDependenciesResult: System.Collections.Generic.IEnumerable`1[System.String] Resolutions
Microsoft.DotNet.DependencyManager.IResolveDependenciesResult: System.Collections.Generic.IEnumerable`1[System.String] Roots
Microsoft.DotNet.DependencyManager.IResolveDependenciesResult: System.Collections.Generic.IEnumerable`1[System.String] SourceFiles
Microsoft.DotNet.DependencyManager.IResolveDependenciesResult: System.Collections.Generic.IEnumerable`1[System.String] get_Resolutions()
Microsoft.DotNet.DependencyManager.IResolveDependenciesResult: System.Collections.Generic.IEnumerable`1[System.String] get_Roots()
Microsoft.DotNet.DependencyManager.IResolveDependenciesResult: System.Collections.Generic.IEnumerable`1[System.String] get_SourceFiles()
Microsoft.DotNet.DependencyManager.IResolveDependenciesResult: System.String[] StdError
Microsoft.DotNet.DependencyManager.IResolveDependenciesResult: System.String[] StdOut
Microsoft.DotNet.DependencyManager.IResolveDependenciesResult: System.String[] get_StdError()
Microsoft.DotNet.DependencyManager.IResolveDependenciesResult: System.String[] get_StdOut()
Microsoft.DotNet.DependencyManager.NativeDllResolveHandler
Microsoft.DotNet.DependencyManager.NativeDllResolveHandler: Void .ctor(Microsoft.DotNet.DependencyManager.NativeResolutionProbe)
Microsoft.DotNet.DependencyManager.NativeResolutionProbe
Microsoft.DotNet.DependencyManager.NativeResolutionProbe: System.Collections.Generic.IEnumerable`1[System.String] EndInvoke(System.IAsyncResult)
Microsoft.DotNet.DependencyManager.NativeResolutionProbe: System.Collections.Generic.IEnumerable`1[System.String] Invoke()
Microsoft.DotNet.DependencyManager.NativeResolutionProbe: System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)
Microsoft.DotNet.DependencyManager.NativeResolutionProbe: Void .ctor(System.Object, IntPtr)
Microsoft.DotNet.DependencyManager.ResolvingErrorReport
Microsoft.DotNet.DependencyManager.ResolvingErrorReport: System.IAsyncResult BeginInvoke(Microsoft.DotNet.DependencyManager.ErrorReportType, Int32, System.String, System.AsyncCallback, System.Object)
Microsoft.DotNet.DependencyManager.ResolvingErrorReport: Void .ctor(System.Object, IntPtr)
Microsoft.DotNet.DependencyManager.ResolvingErrorReport: Void EndInvoke(System.IAsyncResult)
Microsoft.DotNet.DependencyManager.ResolvingErrorReport: Void Invoke(Microsoft.DotNet.DependencyManager.ErrorReportType, Int32, System.String)"
FSharp.Compiler.DependencyManager.AssemblyResolutionProbe
FSharp.Compiler.DependencyManager.AssemblyResolutionProbe: System.Collections.Generic.IEnumerable`1[System.String] EndInvoke(System.IAsyncResult)
FSharp.Compiler.DependencyManager.AssemblyResolutionProbe: System.Collections.Generic.IEnumerable`1[System.String] Invoke()
FSharp.Compiler.DependencyManager.AssemblyResolutionProbe: System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)
FSharp.Compiler.DependencyManager.AssemblyResolutionProbe: Void .ctor(System.Object, IntPtr)
FSharp.Compiler.DependencyManager.AssemblyResolveHandler
FSharp.Compiler.DependencyManager.AssemblyResolveHandler: Void .ctor(FSharp.Compiler.DependencyManager.AssemblyResolutionProbe)
FSharp.Compiler.DependencyManager.DependencyProvider
FSharp.Compiler.DependencyManager.DependencyProvider: FSharp.Compiler.DependencyManager.IDependencyManagerProvider TryFindDependencyManagerByKey(System.Collections.Generic.IEnumerable`1[System.String], System.String, FSharp.Compiler.DependencyManager.ResolvingErrorReport, System.String)
FSharp.Compiler.DependencyManager.DependencyProvider: FSharp.Compiler.DependencyManager.IResolveDependenciesResult Resolve(FSharp.Compiler.DependencyManager.IDependencyManagerProvider, System.String, System.Collections.Generic.IEnumerable`1[System.Tuple`2[System.String,System.String]], FSharp.Compiler.DependencyManager.ResolvingErrorReport, System.String, System.String, System.String, System.String, System.String, Int32)
FSharp.Compiler.DependencyManager.DependencyProvider: System.String[] GetRegisteredDependencyManagerHelpText(System.Collections.Generic.IEnumerable`1[System.String], System.String, FSharp.Compiler.DependencyManager.ResolvingErrorReport)
FSharp.Compiler.DependencyManager.DependencyProvider: System.Tuple`2[System.Int32,System.String] CreatePackageManagerUnknownError(System.Collections.Generic.IEnumerable`1[System.String], System.String, System.String, FSharp.Compiler.DependencyManager.ResolvingErrorReport)
FSharp.Compiler.DependencyManager.DependencyProvider: System.Tuple`2[System.String,FSharp.Compiler.DependencyManager.IDependencyManagerProvider] TryFindDependencyManagerInPath(System.Collections.Generic.IEnumerable`1[System.String], System.String, FSharp.Compiler.DependencyManager.ResolvingErrorReport, System.String)
FSharp.Compiler.DependencyManager.DependencyProvider: Void .ctor()
FSharp.Compiler.DependencyManager.DependencyProvider: Void .ctor(FSharp.Compiler.DependencyManager.AssemblyResolutionProbe, FSharp.Compiler.DependencyManager.NativeResolutionProbe)
FSharp.Compiler.DependencyManager.DependencyProvider: Void .ctor(FSharp.Compiler.DependencyManager.NativeResolutionProbe)
FSharp.Compiler.DependencyManager.ErrorReportType
FSharp.Compiler.DependencyManager.ErrorReportType+Tags: Int32 Error
FSharp.Compiler.DependencyManager.ErrorReportType+Tags: Int32 Warning
FSharp.Compiler.DependencyManager.ErrorReportType: Boolean Equals(FSharp.Compiler.DependencyManager.ErrorReportType)
FSharp.Compiler.DependencyManager.ErrorReportType: Boolean Equals(System.Object)
FSharp.Compiler.DependencyManager.ErrorReportType: Boolean Equals(System.Object, System.Collections.IEqualityComparer)
FSharp.Compiler.DependencyManager.ErrorReportType: Boolean IsError
FSharp.Compiler.DependencyManager.ErrorReportType: Boolean IsWarning
FSharp.Compiler.DependencyManager.ErrorReportType: Boolean get_IsError()
FSharp.Compiler.DependencyManager.ErrorReportType: Boolean get_IsWarning()
FSharp.Compiler.DependencyManager.ErrorReportType: Int32 CompareTo(FSharp.Compiler.DependencyManager.ErrorReportType)
FSharp.Compiler.DependencyManager.ErrorReportType: Int32 CompareTo(System.Object)
FSharp.Compiler.DependencyManager.ErrorReportType: Int32 CompareTo(System.Object, System.Collections.IComparer)
FSharp.Compiler.DependencyManager.ErrorReportType: Int32 GetHashCode()
FSharp.Compiler.DependencyManager.ErrorReportType: Int32 GetHashCode(System.Collections.IEqualityComparer)
FSharp.Compiler.DependencyManager.ErrorReportType: Int32 Tag
FSharp.Compiler.DependencyManager.ErrorReportType: Int32 get_Tag()
FSharp.Compiler.DependencyManager.ErrorReportType: FSharp.Compiler.DependencyManager.ErrorReportType Error
FSharp.Compiler.DependencyManager.ErrorReportType: FSharp.Compiler.DependencyManager.ErrorReportType Warning
FSharp.Compiler.DependencyManager.ErrorReportType: FSharp.Compiler.DependencyManager.ErrorReportType get_Error()
FSharp.Compiler.DependencyManager.ErrorReportType: FSharp.Compiler.DependencyManager.ErrorReportType get_Warning()
FSharp.Compiler.DependencyManager.ErrorReportType: FSharp.Compiler.DependencyManager.ErrorReportType+Tags
FSharp.Compiler.DependencyManager.ErrorReportType: System.String ToString()
FSharp.Compiler.DependencyManager.IDependencyManagerProvider
FSharp.Compiler.DependencyManager.IDependencyManagerProvider: FSharp.Compiler.DependencyManager.IResolveDependenciesResult ResolveDependencies(System.String, System.String, System.String, System.String, System.Collections.Generic.IEnumerable`1[System.Tuple`2[System.String,System.String]], System.String, System.String, Int32)
FSharp.Compiler.DependencyManager.IDependencyManagerProvider: System.String Key
FSharp.Compiler.DependencyManager.IDependencyManagerProvider: System.String Name
FSharp.Compiler.DependencyManager.IDependencyManagerProvider: System.String get_Key()
FSharp.Compiler.DependencyManager.IDependencyManagerProvider: System.String get_Name()
FSharp.Compiler.DependencyManager.IDependencyManagerProvider: System.String[] HelpMessages
FSharp.Compiler.DependencyManager.IDependencyManagerProvider: System.String[] get_HelpMessages()
FSharp.Compiler.DependencyManager.IResolveDependenciesResult
FSharp.Compiler.DependencyManager.IResolveDependenciesResult: Boolean Success
FSharp.Compiler.DependencyManager.IResolveDependenciesResult: Boolean get_Success()
FSharp.Compiler.DependencyManager.IResolveDependenciesResult: System.Collections.Generic.IEnumerable`1[System.String] Resolutions
FSharp.Compiler.DependencyManager.IResolveDependenciesResult: System.Collections.Generic.IEnumerable`1[System.String] Roots
FSharp.Compiler.DependencyManager.IResolveDependenciesResult: System.Collections.Generic.IEnumerable`1[System.String] SourceFiles
FSharp.Compiler.DependencyManager.IResolveDependenciesResult: System.Collections.Generic.IEnumerable`1[System.String] get_Resolutions()
FSharp.Compiler.DependencyManager.IResolveDependenciesResult: System.Collections.Generic.IEnumerable`1[System.String] get_Roots()
FSharp.Compiler.DependencyManager.IResolveDependenciesResult: System.Collections.Generic.IEnumerable`1[System.String] get_SourceFiles()
FSharp.Compiler.DependencyManager.IResolveDependenciesResult: System.String[] StdError
FSharp.Compiler.DependencyManager.IResolveDependenciesResult: System.String[] StdOut
FSharp.Compiler.DependencyManager.IResolveDependenciesResult: System.String[] get_StdError()
FSharp.Compiler.DependencyManager.IResolveDependenciesResult: System.String[] get_StdOut()
FSharp.Compiler.DependencyManager.NativeDllResolveHandler
FSharp.Compiler.DependencyManager.NativeDllResolveHandler: Void .ctor(FSharp.Compiler.DependencyManager.NativeResolutionProbe)
FSharp.Compiler.DependencyManager.NativeResolutionProbe
FSharp.Compiler.DependencyManager.NativeResolutionProbe: System.Collections.Generic.IEnumerable`1[System.String] EndInvoke(System.IAsyncResult)
FSharp.Compiler.DependencyManager.NativeResolutionProbe: System.Collections.Generic.IEnumerable`1[System.String] Invoke()
FSharp.Compiler.DependencyManager.NativeResolutionProbe: System.IAsyncResult BeginInvoke(System.AsyncCallback, System.Object)
FSharp.Compiler.DependencyManager.NativeResolutionProbe: Void .ctor(System.Object, IntPtr)
FSharp.Compiler.DependencyManager.ResolvingErrorReport
FSharp.Compiler.DependencyManager.ResolvingErrorReport: System.IAsyncResult BeginInvoke(FSharp.Compiler.DependencyManager.ErrorReportType, Int32, System.String, System.AsyncCallback, System.Object)
FSharp.Compiler.DependencyManager.ResolvingErrorReport: Void .ctor(System.Object, IntPtr)
FSharp.Compiler.DependencyManager.ResolvingErrorReport: Void EndInvoke(System.IAsyncResult)
FSharp.Compiler.DependencyManager.ResolvingErrorReport: Void Invoke(FSharp.Compiler.DependencyManager.ErrorReportType, Int32, System.String)"
SurfaceArea.verify expected "netstandard" (System.IO.Path.Combine(__SOURCE_DIRECTORY__,__SOURCE_FILE__))
\ No newline at end of file
......@@ -3,11 +3,11 @@
namespace FSharp.Test.Utilities
open FSharp.Compiler.Interactive.Shell
open FSharp.Compiler.Scripting
open FSharp.Compiler.SourceCodeServices
open FSharp.Test.Utilities
open FSharp.Test.Utilities.Assert
open FSharp.Test.Utilities.Utilities
open FSharp.Test.ScriptHelpers
open Microsoft.CodeAnalysis
open Microsoft.CodeAnalysis.CSharp
open NUnit.Framework
......
......@@ -22,6 +22,7 @@
<Compile Include="Utilities.fs" />
<Compile Include="CompilerAssert.fs" />
<Compile Include="Assert.fs" />
<Compile Include="ScriptHelpers.fs" />
<Compile Include="Compiler.fs" />
<Compile Include="Xunit\Attributes\DirectoryAttribute.fs" />
</ItemGroup>
......@@ -32,7 +33,6 @@
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\FSharp.Core\FSharp.Core.fsproj" />
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\FSharp.Build\FSharp.Build.fsproj" />
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\FSharp.Compiler.Service\FSharp.Compiler.Service.fsproj" />
<ProjectReference Include="$(FSharpSourcesRoot)\fsharp\FSharp.Compiler.Private.Scripting\FSharp.Compiler.Private.Scripting.fsproj" />
<ProjectReference Include="$(FSharpTestsRoot)\fsharpqa\testenv\src\PEVerify\PEVerify.csproj" />
</ItemGroup>
......
// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information.
namespace FSharp.Compiler.Scripting
namespace FSharp.Test.ScriptHelpers
open System
open System.Collections.Generic
open System.IO
open System.Text
open System.Threading
open FSharp.Compiler
open FSharp.Compiler.SourceCodeServices
open FSharp.Compiler.Interactive.Shell
open FSharp.Compiler.SourceCodeServices
type CapturedTextReader() =
inherit TextReader()
let queue = Queue<char>()
member _.ProvideInput(text: string) =
for c in text.ToCharArray() do
queue.Enqueue(c)
override _.Peek() =
if queue.Count > 0 then queue.Peek() |> int else -1
override _.Read() =
if queue.Count > 0 then queue.Dequeue() |> int else -1
type RedirectConsoleInput() =
let oldStdIn = Console.In
let newStdIn = new CapturedTextReader()
do Console.SetIn(newStdIn)
member _.ProvideInput(text: string) =
newStdIn.ProvideInput(text)
interface IDisposable with
member _.Dispose() =
Console.SetIn(oldStdIn)
newStdIn.Dispose()
type EventedTextWriter() =
inherit TextWriter()
let sb = StringBuilder()
let lineWritten = Event<string>()
member _.LineWritten = lineWritten.Publish
override _.Encoding = Encoding.UTF8
override _.Write(c: char) =
if c = '\n' then
let line =
let v = sb.ToString()
if v.EndsWith("\r") then v.Substring(0, v.Length - 1)
else v
sb.Clear() |> ignore
lineWritten.Trigger(line)
else sb.Append(c) |> ignore
type RedirectConsoleOutput() =
let outputProduced = Event<string>()
let errorProduced = Event<string>()
let oldStdOut = Console.Out
let oldStdErr = Console.Error
let newStdOut = new EventedTextWriter()
let newStdErr = new EventedTextWriter()
do newStdOut.LineWritten.Add outputProduced.Trigger
do newStdErr.LineWritten.Add errorProduced.Trigger
do Console.SetOut(newStdOut)
do Console.SetError(newStdErr)
member _.OutputProduced = outputProduced.Publish
member _.ErrorProduced = errorProduced.Publish
interface IDisposable with
member _.Dispose() =
Console.SetOut(oldStdOut)
Console.SetError(oldStdErr)
newStdOut.Dispose()
newStdErr.Dispose()
[<RequireQualifiedAccess>]
type LangVersion =
......@@ -19,7 +81,6 @@ type FSharpScript(?additionalArgs: string[], ?quiet: bool, ?langVersion: LangVer
let additionalArgs = defaultArg additionalArgs [||]
let quiet = defaultArg quiet true
let langVersion = defaultArg langVersion LangVersion.Preview
let config = FsiEvaluationSession.GetDefaultConfiguration()
let computedProfile =
......@@ -70,3 +131,27 @@ type FSharpScript(?additionalArgs: string[], ?quiet: bool, ?langVersion: LangVer
interface IDisposable with
member _.Dispose() =
(fsi :> IDisposable).Dispose()
[<AutoOpen>]
module TestHelpers =
let getValue ((value: Result<FsiValue option, exn>), (errors: FSharpDiagnostic[])) =
if errors.Length > 0 then
failwith <| sprintf "Evaluation returned %d errors:\r\n\t%s" errors.Length (String.Join("\r\n\t", errors))
match value with
| Ok(value) -> value
| Error ex -> raise ex
let ignoreValue = getValue >> ignore
let getTempDir () =
let sysTempDir = Path.GetTempPath()
let customTempDirName = Guid.NewGuid().ToString("D")
let fullDirName = Path.Combine(sysTempDir, customTempDirName)
let dirInfo = Directory.CreateDirectory(fullDirName)
{ new Object() with
member _.ToString() = dirInfo.FullName
interface IDisposable with
member _.Dispose() =
dirInfo.Delete(true)
}
......@@ -412,11 +412,6 @@ type public InitializeSuiteAttribute () =
override x.Targets = ActionTargets.Test ||| ActionTargets.Suite
[<assembly:ParallelizableAttribute(ParallelScope.Fixtures)>]
[<assembly:InitializeSuite()>]
()
let fsharpSuiteDirectory = __SOURCE_DIRECTORY__
let testConfig testDir =
......
//<Expects status="Error" span="(4,1)" id="FS3400">Package manager key 'unk' was not registered</Expects>
//<Expects status="Error" span="(4,1)" id="FS3401">Processing of a script fragment has stopped because an exception has been raised</Expects>
//<Expects status="Error" span="(4,1)" id="FS3216">Package manager key 'unk' was not registered</Expects>
//<Expects status="Error" span="(4,1)" id="FS3217">Processing of a script fragment has stopped because an exception has been raised</Expects>
#r "unk: blubblub"
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册