From d66a79f0984f37774805a2ff9a703387c9ef79fc Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Wed, 24 May 2023 00:37:53 +0200 Subject: [PATCH 01/54] Move to net8 tfm (#15245) Co-authored-by: Kevin Ransom (msft) --- .vscode/launch.json | 4 +- DEVGUIDE.md | 2 +- Directory.Build.props | 4 +- FSharpTests.Directory.Build.props | 6 +-- buildtools/AssemblyCheck/AssemblyCheck.fsproj | 2 +- .../FSharp.Compiler.Service_notshipped.fsproj | 2 +- .../FSharp.Core_notshipped.fsproj | 2 +- buildtools/fslex/fslex.fsproj | 2 +- buildtools/fsyacc/fsyacc.fsproj | 2 +- eng/Build.ps1 | 8 ++-- eng/DumpPackageRoot/DumpPackageRoot.csproj | 2 +- eng/Versions.props | 8 ++-- eng/build-utils.ps1 | 9 ++--- eng/build.sh | 10 ++--- eng/test-determinism.ps1 | 2 +- .../EditorService/EditorService.fsproj | 2 +- src/Compiler/Driver/FxResolver.fs | 2 +- src/Compiler/FSharp.Compiler.Service.fsproj | 6 +-- .../Microsoft.FSharp.Compiler.fsproj | 2 +- .../Microsoft.FSharp.Compiler.nuspec | 28 +++++++------- src/fsc/fscProject/fsc.fsproj | 6 +-- src/fsi/fsiProject/fsi.fsproj | 6 +-- .../SelfContained_Trimming_Test.fsproj | 6 +-- ...taticLinkedFSharpCore_Trimming_Test.fsproj | 6 +-- tests/AheadOfTime/Trimming/check.ps1 | 8 ++-- .../BasicProvider.DesignTime.fsproj | 2 +- .../BasicProvider.Tests.fsproj | 2 +- .../BasicProvider/BasicProvider.fsproj | 2 +- .../BasicProvider/TestBasicProvider.cmd | 8 ++-- .../FSharp.Build.UnitTests.fsproj | 4 +- .../NoBoxingOnDispose01.fs.il.netcore.bsl | 2 +- ...inq101Aggregates01.fs.il.netcore.debug.bsl | 2 +- ...q101Aggregates01.fs.il.netcore.release.bsl | 2 +- .../Linq101Grouping01.fs.il.netcore.debug.bsl | 2 +- ...inq101Grouping01.fs.il.netcore.release.bsl | 2 +- .../Linq101Joins01.fs.il.netcore.debug.bsl | 2 +- .../Linq101Joins01.fs.il.netcore.release.bsl | 2 +- ...nq101Quantifiers01.fs.il.netcore.debug.bsl | 2 +- ...101Quantifiers01.fs.il.netcore.release.bsl | 2 +- .../Tuples/OptionalArg01.fs.il.netcore.bsl | 2 +- .../Tuples/TupleElimination.fs.il.netcore.bsl | 2 +- .../FSharp.Compiler.ComponentTests.fsproj | 4 +- .../DependencyManagerInteractiveTests.fs | 37 +++++++++---------- ...ompiler.Private.Scripting.UnitTests.fsproj | 4 +- .../FSharp.Compiler.Service.Tests.fsproj | 4 +- .../FSharp.Compiler.UnitTests.fsproj | 4 +- .../FSharp.Core.UnitTests.fsproj | 4 +- tests/FSharp.Test.Utilities/CompilerAssert.fs | 2 +- .../FSharp.Test.Utilities.fsproj | 4 +- .../ProjectGeneration.fs | 2 +- tests/FSharp.Test.Utilities/TestFramework.fs | 2 +- tests/FSharp.Test.Utilities/Utilities.fs | 2 +- .../MicroPerf/CS/MicroPerfCSharp.csproj | 2 +- .../MicroPerf/MicroPerf.fsproj | 2 +- .../TaskPerf/TaskPerf/TaskPerf.fsproj | 2 +- .../TaskPerfPreviousCompiler.fsproj | 2 +- .../HistoricalBenchmark.Runner.fsproj | 2 +- .../HistoricalBenchmark.fsproj | 2 +- .../BenchmarkComparison/runner.ipynb | 2 +- .../FSharp.Compiler.Benchmarks.fsproj | 2 +- .../benchmarks.ipynb | 4 +- .../FCSSourceFiles/FCSSourceFiles.fsproj | 2 +- .../Fsharp.ProfilingStartpointProject.fsproj | 2 +- tests/fsharp/FSharpSuite.Tests.fsproj | 4 +- tests/fsharp/single-test.fs | 6 +-- .../Sample_ConsoleApp_net7.fsproj | 6 +-- .../Sample_ConsoleApp_net7.fsproj | 6 +-- tests/scripts/identifierAnalysisByType.fsx | 2 +- 68 files changed, 145 insertions(+), 149 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index a0118990e74..8853be0a138 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -23,7 +23,7 @@ // TODO: Shall we assume that it's already been built, or build it every time we debug? // "preLaunchTask": "Build (Debug)", // If you have changed target frameworks, make sure to update the program p - "program": "${workspaceFolder}/artifacts/bin/fsi/Debug/net7.0/fsi.dll", + "program": "${workspaceFolder}/artifacts/bin/fsi/Debug/net8.0/fsi.dll", "args": [ "${input:fsiArgsPrompt}" ], @@ -52,7 +52,7 @@ // TODO: Shall we assume that it's already been built, or build it every time we debug? // "preLaunchTask": "Build (Debug)", // If you have changed target frameworks, make sure to update the program path. - "program": "${workspaceFolder}/artifacts/bin/fsc/Debug/net7.0/fsc.dll", + "program": "${workspaceFolder}/artifacts/bin/fsc/Debug/net8.0/fsc.dll", "args": [ "${input:fscArgsPrompt}" ], diff --git a/DEVGUIDE.md b/DEVGUIDE.md index 49e04803ec4..89831695802 100644 --- a/DEVGUIDE.md +++ b/DEVGUIDE.md @@ -130,7 +130,7 @@ To use your custom build of `Fsc`, add the `DotnetFscCompilerPath` property to y ```xml - D:\Git\fsharp\artifacts\bin\fsc\Debug\net7.0\fsc.dll + D:\Git\fsharp\artifacts\bin\fsc\Debug\net8.0\fsc.dll ``` diff --git a/Directory.Build.props b/Directory.Build.props index 7a398a0f13e..a661099abc4 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -28,8 +28,8 @@ $(MSBuildThisFileDirectory)artifacts/ $(ArtifactsDir)/bin/$(MSBuildProjectName)/$(Configuration)/ $(ArtifactsDir)obj/$(MSBuildProjectName)/$(Configuration)/ - $(ArtifactsDir)/bin/fslex/$(Configuration)/net7.0/fslex.dll - $(ArtifactsDir)/bin/fsyacc/$(Configuration)/net7.0/fsyacc.dll + $(ArtifactsDir)/bin/fslex/$(Configuration)/net8.0/fslex.dll + $(ArtifactsDir)/bin/fsyacc/$(Configuration)/net8.0/fsyacc.dll diff --git a/FSharpTests.Directory.Build.props b/FSharpTests.Directory.Build.props index 2cc7df4372c..03c26b4b075 100644 --- a/FSharpTests.Directory.Build.props +++ b/FSharpTests.Directory.Build.props @@ -22,18 +22,18 @@ $([System.IO.Path]::GetDirectoryName('$(DOTNET_HOST_PATH)')) dotnet.exe dotnet - $(MSBuildThisFileDirectory)artifacts\bin\fsc\$(Configuration)\net7.0\fsc.dll + $(MSBuildThisFileDirectory)artifacts\bin\fsc\$(Configuration)\net8.0\fsc.dll $([System.IO.Path]::GetDirectoryName('$(DOTNET_HOST_PATH)')) dotnet.exe dotnet - $(MSBuildThisFileDirectory)artifacts\bin\fsi\$(Configuration)\net7.0\fsi.dll + $(MSBuildThisFileDirectory)artifacts\bin\fsi\$(Configuration)\net8.0\fsi.dll <_FSharpBuildTargetFramework Condition="'$(MSBuildRuntimeType)'!='Core'">net472 - <_FSharpBuildTargetFramework Condition="'$(MSBuildRuntimeType)'=='Core'">net7.0 + <_FSharpBuildTargetFramework Condition="'$(MSBuildRuntimeType)'=='Core'">net8.0 <_FSharpBuildBinPath>$(MSBuildThisFileDirectory)artifacts\bin\fsc\$(Configuration)\$(_FSharpBuildTargetFramework) $(_FSharpBuildBinPath)\FSharp.Build.dll diff --git a/buildtools/AssemblyCheck/AssemblyCheck.fsproj b/buildtools/AssemblyCheck/AssemblyCheck.fsproj index d73a74cc8c4..46ffb722cd4 100644 --- a/buildtools/AssemblyCheck/AssemblyCheck.fsproj +++ b/buildtools/AssemblyCheck/AssemblyCheck.fsproj @@ -2,7 +2,7 @@ Exe - net7.0 + net8.0 true false diff --git a/buildtools/checkpackages/FSharp.Compiler.Service_notshipped.fsproj b/buildtools/checkpackages/FSharp.Compiler.Service_notshipped.fsproj index a9166e35340..514b1f4ddf6 100644 --- a/buildtools/checkpackages/FSharp.Compiler.Service_notshipped.fsproj +++ b/buildtools/checkpackages/FSharp.Compiler.Service_notshipped.fsproj @@ -3,7 +3,7 @@ - net7.0 + net8.0 true $(MSBuildProjectDirectory)\..\..\artifacts\tmp\$([System.Guid]::NewGuid()) $(CachePath)\bin diff --git a/buildtools/checkpackages/FSharp.Core_notshipped.fsproj b/buildtools/checkpackages/FSharp.Core_notshipped.fsproj index 7299f5aec7a..f104ff30fe7 100644 --- a/buildtools/checkpackages/FSharp.Core_notshipped.fsproj +++ b/buildtools/checkpackages/FSharp.Core_notshipped.fsproj @@ -3,7 +3,7 @@ - net7.0 + ne87.0 diff --git a/buildtools/fslex/fslex.fsproj b/buildtools/fslex/fslex.fsproj index f4ae4141ee9..a0b0c19c52d 100644 --- a/buildtools/fslex/fslex.fsproj +++ b/buildtools/fslex/fslex.fsproj @@ -2,7 +2,7 @@ Exe - net7.0 + net8.0 true false diff --git a/buildtools/fsyacc/fsyacc.fsproj b/buildtools/fsyacc/fsyacc.fsproj index c0bcdd4e093..98f1578559f 100644 --- a/buildtools/fsyacc/fsyacc.fsproj +++ b/buildtools/fsyacc/fsyacc.fsproj @@ -2,7 +2,7 @@ Exe - net7.0 + net8.0 true false diff --git a/eng/Build.ps1 b/eng/Build.ps1 index d673647bb2e..d9af22fe8fe 100644 --- a/eng/Build.ps1 +++ b/eng/Build.ps1 @@ -222,11 +222,11 @@ function Process-Arguments() { function Update-Arguments() { if ($script:noVisualStudio) { - $script:bootstrapTfm = "net7.0" + $script:bootstrapTfm = "net8.0" $script:msbuildEngine = "dotnet" } - if ($bootstrapTfm -eq "net7.0") { + if ($bootstrapTfm -eq "net8.0") { if (-Not (Test-Path "$ArtifactsDir\Bootstrap\fsc\fsc.runtimeconfig.json")) { $script:bootstrap = $True } @@ -247,7 +247,7 @@ function BuildSolution([string] $solutionName) { $officialBuildId = if ($official) { $env:BUILD_BUILDNUMBER } else { "" } $toolsetBuildProj = InitializeToolset $quietRestore = !$ci - $testTargetFrameworks = if ($testCoreClr) { "net7.0" } else { "" } + $testTargetFrameworks = if ($testCoreClr) { "net8.0" } else { "" } # Do not set the property to true explicitly, since that would override value projects might set. $suppressExtensionDeployment = if (!$deployExtensions) { "/p:DeployExtension=false" } else { "" } @@ -556,7 +556,7 @@ try { $script:BuildCategory = "Test" $script:BuildMessage = "Failure running tests" $desktopTargetFramework = "net472" - $coreclrTargetFramework = "net7.0" + $coreclrTargetFramework = "net8.0" if ($testCoreClr) { $bgJob = TestUsingNUnit -testProject "$RepoRoot\tests\fsharp\FSharpSuite.Tests.fsproj" -targetFramework $coreclrTargetFramework -testadapterpath "$ArtifactsDir\bin\FSharpSuite.Tests\" -asBackgroundJob $true diff --git a/eng/DumpPackageRoot/DumpPackageRoot.csproj b/eng/DumpPackageRoot/DumpPackageRoot.csproj index 913463393a8..5cbfdca4db5 100644 --- a/eng/DumpPackageRoot/DumpPackageRoot.csproj +++ b/eng/DumpPackageRoot/DumpPackageRoot.csproj @@ -3,7 +3,7 @@ - net7.0 + net8.0 diff --git a/eng/Versions.props b/eng/Versions.props index cf4599795e3..41df94ca4b3 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -13,9 +13,9 @@ beta - 7 + 8 0 - 400 + 100 0 @@ -32,7 +32,7 @@ 43 - 7 + 8 $(FSBuildVersion) $(FSRevisionVersion) $(FCSMajorVersion).$(FCSMinorVersion).$(FCSBuildVersion) @@ -47,7 +47,7 @@ 12 - 7 + 8 0 $(FSRevisionVersion) $(FSToolsMajorVersion).$(FSToolsMinorVersion).$(FSToolsBuildVersion) diff --git a/eng/build-utils.ps1 b/eng/build-utils.ps1 index 2162fc880cf..d5375c29732 100644 --- a/eng/build-utils.ps1 +++ b/eng/build-utils.ps1 @@ -251,9 +251,9 @@ function Make-BootstrapBuild() { } Exec-Console $dotnetExe $args - Copy-Item "$ArtifactsDir\bin\fslex\$bootstrapConfiguration\net7.0" -Destination "$dir\fslex" -Force -Recurse - Copy-Item "$ArtifactsDir\bin\fsyacc\$bootstrapConfiguration\net7.0" -Destination "$dir\fsyacc" -Force -Recurse - Copy-Item "$ArtifactsDir\bin\AssemblyCheck\$bootstrapConfiguration\net7.0" -Destination "$dir\AssemblyCheck" -Force -Recurse + Copy-Item "$ArtifactsDir\bin\fslex\$bootstrapConfiguration\net8.0" -Destination "$dir\fslex" -Force -Recurse + Copy-Item "$ArtifactsDir\bin\fsyacc\$bootstrapConfiguration\net8.0" -Destination "$dir\fsyacc" -Force -Recurse + Copy-Item "$ArtifactsDir\bin\AssemblyCheck\$bootstrapConfiguration\net8.0" -Destination "$dir\AssemblyCheck" -Force -Recurse # prepare compiler $protoProject = "`"$RepoRoot\proto.sln`"" @@ -269,6 +269,3 @@ function Make-BootstrapBuild() { return $dir } - - - diff --git a/eng/build.sh b/eng/build.sh index b9f00002e8e..3b992d6bfab 100755 --- a/eng/build.sh +++ b/eng/build.sh @@ -264,8 +264,8 @@ function BuildSolution { MSBuild "$repo_root/buildtools/buildtools.proj" /restore "$bltools" /p:Configuration=$bootstrap_config mkdir -p "$bootstrap_dir" - cp -pr $artifacts_dir/bin/fslex/$bootstrap_config/net7.0 $bootstrap_dir/fslex - cp -pr $artifacts_dir/bin/fsyacc/$bootstrap_config/net7.0 $bootstrap_dir/fsyacc + cp -pr $artifacts_dir/bin/fslex/$bootstrap_config/net8.0 $bootstrap_dir/fslex + cp -pr $artifacts_dir/bin/fsyacc/$bootstrap_config/net8.0 $bootstrap_dir/fsyacc fi if [ ! -f "$bootstrap_dir/fsc.exe" ]; then local bltools="" @@ -274,7 +274,7 @@ function BuildSolution { fi BuildMessage="Error building bootstrap" MSBuild "$repo_root/Proto.sln" /restore "$bltools" /p:Configuration=$bootstrap_config - cp -pr $artifacts_dir/bin/fsc/$bootstrap_config/net7.0 $bootstrap_dir/fsc + cp -pr $artifacts_dir/bin/fsc/$bootstrap_config/net8.0 $bootstrap_dir/fsc fi fi @@ -316,7 +316,7 @@ InitializeDotNetCli $restore BuildSolution if [[ "$test_core_clr" == true ]]; then - coreclrtestframework=net7.0 + coreclrtestframework=net8.0 TestUsingNUnit --testproject "$repo_root/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj" --targetframework $coreclrtestframework --notestfilter TestUsingNUnit --testproject "$repo_root/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj" --targetframework $coreclrtestframework --notestfilter TestUsingNUnit --testproject "$repo_root/tests/FSharp.Compiler.UnitTests/FSharp.Compiler.UnitTests.fsproj" --targetframework $coreclrtestframework @@ -326,7 +326,7 @@ if [[ "$test_core_clr" == true ]]; then fi if [[ "$test_compilercomponent_tests" == true ]]; then - coreclrtestframework=net7.0 + coreclrtestframework=net8.0 TestUsingNUnit --testproject "$repo_root/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj" --targetframework $coreclrtestframework --notestfilter fi diff --git a/eng/test-determinism.ps1 b/eng/test-determinism.ps1 index d62144c10f1..5b9a079f078 100644 --- a/eng/test-determinism.ps1 +++ b/eng/test-determinism.ps1 @@ -380,7 +380,7 @@ try { $script:bootstrapTfm = "net472" if ($script:msbuildEngine -eq "dotnet") { - $script.bootstrapTfm = "net7.0" + $script.bootstrapTfm = "net8.0" } $bootstrapDir = Make-BootstrapBuild diff --git a/fcs-samples/EditorService/EditorService.fsproj b/fcs-samples/EditorService/EditorService.fsproj index 6e5b8d99e30..e4103999fcb 100644 --- a/fcs-samples/EditorService/EditorService.fsproj +++ b/fcs-samples/EditorService/EditorService.fsproj @@ -1,7 +1,7 @@  - $(FcsTargetNetFxFramework);net7.0 + $(FcsTargetNetFxFramework);net8.0 true Exe false diff --git a/src/Compiler/Driver/FxResolver.fs b/src/Compiler/Driver/FxResolver.fs index 58d13b33586..db0b6c3d756 100644 --- a/src/Compiler/Driver/FxResolver.fs +++ b/src/Compiler/Driver/FxResolver.fs @@ -416,7 +416,7 @@ type internal FxResolver match runningTfmOpt with | Some tfm -> tfm - | _ -> if isRunningOnCoreClr then "net7.0" else "net472" + | _ -> if isRunningOnCoreClr then "net8.0" else "net472" let trySdkRefsPackDirectory = lazy diff --git a/src/Compiler/FSharp.Compiler.Service.fsproj b/src/Compiler/FSharp.Compiler.Service.fsproj index 54f68ef21d1..36b87534b61 100644 --- a/src/Compiler/FSharp.Compiler.Service.fsproj +++ b/src/Compiler/FSharp.Compiler.Service.fsproj @@ -518,15 +518,15 @@ - TargetFramework=net7.0 + TargetFramework=net8.0 compile - TargetFramework=net7.0 + TargetFramework=net8.0 compile - TargetFramework=net7.0 + TargetFramework=net8.0 compile diff --git a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.fsproj b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.fsproj index f3c8aba808a..b8e94074141 100644 --- a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.fsproj +++ b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.fsproj @@ -3,7 +3,7 @@ true Exe - net7.0 + net8.0 Microsoft.FSharp.Compiler.nuspec true .NET Core compatible version of the F# compiler fsc.exe. diff --git a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec index c87a70d9d62..4ff2704b559 100644 --- a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec +++ b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec @@ -4,7 +4,7 @@ $CommonMetadataElements$ en-US - + @@ -26,16 +26,16 @@ this approach gives a very small deployment. Which is kind of necessary. --> - - - - - - + + + + + + + target="lib\net8.0" /> + target="lib\net8.0" /> @@ -46,14 +46,14 @@ - + + target="lib\net8.0" /> - + target="lib\net8.0" /> + + target="lib\net8.0" /> - net472;net7.0 - net7.0 + net472;net8.0 + net8.0 x86 Debug;Release;Proto net472 - net7.0 + net8.0 x86 diff --git a/src/fsi/fsiProject/fsi.fsproj b/src/fsi/fsiProject/fsi.fsproj index 799fc1362e6..9feea7167b2 100644 --- a/src/fsi/fsiProject/fsi.fsproj +++ b/src/fsi/fsiProject/fsi.fsproj @@ -3,15 +3,15 @@ - net472;net7.0 - net7.0 + net472;net8.0 + net8.0 x86 Debug;Release;Proto net472 - net7.0 + net8.0 x86 diff --git a/tests/AheadOfTime/Trimming/SelfContained_Trimming_Test/SelfContained_Trimming_Test.fsproj b/tests/AheadOfTime/Trimming/SelfContained_Trimming_Test/SelfContained_Trimming_Test.fsproj index 3939fec5527..7893f5d792e 100644 --- a/tests/AheadOfTime/Trimming/SelfContained_Trimming_Test/SelfContained_Trimming_Test.fsproj +++ b/tests/AheadOfTime/Trimming/SelfContained_Trimming_Test/SelfContained_Trimming_Test.fsproj @@ -2,7 +2,7 @@ Exe - net472;net7.0 + net472;net8.0 preview true true @@ -17,8 +17,8 @@ - $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net7.0/fsc.dll - $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net7.0/fsc.dll + $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net8.0/fsc.dll + $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net8.0/fsc.dll False True diff --git a/tests/AheadOfTime/Trimming/StaticLinkedFSharpCore_Trimming_Test/StaticLinkedFSharpCore_Trimming_Test.fsproj b/tests/AheadOfTime/Trimming/StaticLinkedFSharpCore_Trimming_Test/StaticLinkedFSharpCore_Trimming_Test.fsproj index 615e885dabb..ac2adec9ed4 100644 --- a/tests/AheadOfTime/Trimming/StaticLinkedFSharpCore_Trimming_Test/StaticLinkedFSharpCore_Trimming_Test.fsproj +++ b/tests/AheadOfTime/Trimming/StaticLinkedFSharpCore_Trimming_Test/StaticLinkedFSharpCore_Trimming_Test.fsproj @@ -2,7 +2,7 @@ Exe - net472;net7.0 + net472;net8.0 preview true true @@ -19,8 +19,8 @@ - $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net7.0/fsc.dll - $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net7.0/fsc.dll + $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net8.0/fsc.dll + $(MSBuildThisFileDirectory)../../../../artifacts/bin/fsc/Release/net8.0/fsc.dll False True diff --git a/tests/AheadOfTime/Trimming/check.ps1 b/tests/AheadOfTime/Trimming/check.ps1 index d8151aef14e..4ba9c3c6f09 100644 --- a/tests/AheadOfTime/Trimming/check.ps1 +++ b/tests/AheadOfTime/Trimming/check.ps1 @@ -36,8 +36,8 @@ function CheckTrim($root, $tfm, $outputfile, $expected_len) { } -# Check net7.0 trimmed assemblies -CheckTrim -root "SelfContained_Trimming_Test" -tfm "net7.0" -outputfile "FSharp.Core.dll" -expected_len 287744 +# Check net8.0 trimmed assemblies +CheckTrim -root "SelfContained_Trimming_Test" -tfm "net8.0" -outputfile "FSharp.Core.dll" -expected_len 287744 # Check net472 trimmed assemblies -- net472 doesn't actually trim, this just checks that everything is usable when published trimmed CheckTrim -root "SelfContained_Trimming_Test" -tfm "net472" -outputfile "FSharp.Core.dll" -expected_len -1 @@ -46,5 +46,5 @@ CheckTrim -root "SelfContained_Trimming_Test" -tfm "net472" -outputfile "FSharp. # Check net472 trimmed / static linked assemblies CheckTrim -root "StaticLinkedFSharpCore_Trimming_Test" -tfm "net472" -outputfile "StaticLinkedFSharpCore_Trimming_Test.exe" -expected_len -1 -# Check net7.0 trimmed assemblies -CheckTrim -root "StaticLinkedFSharpCore_Trimming_Test" -tfm "net7.0" -outputfile "StaticLinkedFSharpCore_Trimming_Test.dll" -expected_len 8820736 +# Check net8.0 trimmed assemblies +CheckTrim -root "StaticLinkedFSharpCore_Trimming_Test" -tfm "net8.0" -outputfile "StaticLinkedFSharpCore_Trimming_Test.dll" -expected_len 8820736 diff --git a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj index ab0d33bd429..b05e1882f6e 100644 --- a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj +++ b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.DesignTime/BasicProvider.DesignTime.fsproj @@ -2,7 +2,7 @@ Library - net7.0;net472 + net8.0;net472 typeproviders NO_GENERATIVE IS_DESIGNTIME diff --git a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj index c157669ba0a..5da0cbb3bfb 100644 --- a/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj +++ b/tests/EndToEndBuildTests/BasicProvider/BasicProvider.Tests/BasicProvider.Tests.fsproj @@ -2,7 +2,7 @@ Library - net7.0 + net8.0 $(TestTargetFramework) false NO_GENERATIVE diff --git a/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj b/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj index 6dc26094835..96006f06673 100644 --- a/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj +++ b/tests/EndToEndBuildTests/BasicProvider/BasicProvider/BasicProvider.fsproj @@ -2,7 +2,7 @@ Library - net7.0;net472 + net8.0;net472 typeproviders $(FSharpCoreShippedPackageVersionValue) typeproviders diff --git a/tests/EndToEndBuildTests/BasicProvider/TestBasicProvider.cmd b/tests/EndToEndBuildTests/BasicProvider/TestBasicProvider.cmd index b9d1058aff0..7de66b4e7f8 100644 --- a/tests/EndToEndBuildTests/BasicProvider/TestBasicProvider.cmd +++ b/tests/EndToEndBuildTests/BasicProvider/TestBasicProvider.cmd @@ -42,8 +42,8 @@ echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuratio dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40 if ERRORLEVEL 1 echo Error: TestBasicProvider failed && goto :failure -echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net7.0 -p:FSharpTestCompilerVersion=coreclr - dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net7.0 -p:FSharpTestCompilerVersion=coreclr +echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net8.0 -p:FSharpTestCompilerVersion=coreclr + dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net8.0 -p:FSharpTestCompilerVersion=coreclr if ERRORLEVEL 1 echo Error: TestBasicProvider failed && goto :failure rem @@ -60,8 +60,8 @@ echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuratio dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net472 -p:FSharpTestCompilerVersion=net40 if ERRORLEVEL 1 echo Error: TestBasicProvider failed && goto :failure -echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net7.0 -p:FSharpTestCompilerVersion=coreclr - dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net7.0 -p:FSharpTestCompilerVersion=coreclr +echo dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net8.0 -p:FSharpTestCompilerVersion=coreclr + dotnet test BasicProvider.Tests\BasicProvider.Tests.fsproj -c %configuration% -v minimal -p:TestTargetFramework=net8.0 -p:FSharpTestCompilerVersion=coreclr if ERRORLEVEL 1 echo Error: TestBasicProvider failed && goto :failure :success diff --git a/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj b/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj index 96853becff7..e3c796d0bdd 100644 --- a/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj +++ b/tests/FSharp.Build.UnitTests/FSharp.Build.UnitTests.fsproj @@ -3,8 +3,8 @@ - net472;net7.0 - net7.0 + net472;net8.0 + net8.0 Library true xunit diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/NoBoxingOnDispose01.fs.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/NoBoxingOnDispose01.fs.il.netcore.bsl index e716fe74c72..a75cf1b5171 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/NoBoxingOnDispose01.fs.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Misc/NoBoxingOnDispose01.fs.il.netcore.bsl @@ -8,7 +8,7 @@ .assembly extern System.Collections { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) - .ver 7:0:0:0 + .ver 8:0:0:0 } .assembly assembly { diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Aggregates01.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Aggregates01.fs.il.netcore.debug.bsl index 6d031370ccb..f12aee407f6 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Aggregates01.fs.il.netcore.debug.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Aggregates01.fs.il.netcore.debug.bsl @@ -12,7 +12,7 @@ .assembly extern System.Linq { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) - .ver 7:0:0:0 + .ver 8:0:0:0 } .assembly extern netstandard { diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Aggregates01.fs.il.netcore.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Aggregates01.fs.il.netcore.release.bsl index 492b0fe479e..314f6a56f78 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Aggregates01.fs.il.netcore.release.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Aggregates01.fs.il.netcore.release.bsl @@ -12,7 +12,7 @@ .assembly extern System.Linq { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) - .ver 7:0:0:0 + .ver 8:0:0:0 } .assembly extern netstandard { diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Grouping01.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Grouping01.fs.il.netcore.debug.bsl index 4844a7c0387..2d27fb5b024 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Grouping01.fs.il.netcore.debug.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Grouping01.fs.il.netcore.debug.bsl @@ -8,7 +8,7 @@ .assembly extern System.Linq { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) - .ver 7:0:0:0 + .ver 8:0:0:0 } .assembly extern Utils { diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Grouping01.fs.il.netcore.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Grouping01.fs.il.netcore.release.bsl index 4844a7c0387..2d27fb5b024 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Grouping01.fs.il.netcore.release.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Grouping01.fs.il.netcore.release.bsl @@ -8,7 +8,7 @@ .assembly extern System.Linq { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) - .ver 7:0:0:0 + .ver 8:0:0:0 } .assembly extern Utils { diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Joins01.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Joins01.fs.il.netcore.debug.bsl index 96552966171..f711da357ed 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Joins01.fs.il.netcore.debug.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Joins01.fs.il.netcore.debug.bsl @@ -12,7 +12,7 @@ .assembly extern System.Linq { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) - .ver 7:0:0:0 + .ver 8:0:0:0 } .assembly assembly { diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Joins01.fs.il.netcore.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Joins01.fs.il.netcore.release.bsl index 96552966171..f711da357ed 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Joins01.fs.il.netcore.release.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Joins01.fs.il.netcore.release.bsl @@ -12,7 +12,7 @@ .assembly extern System.Linq { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) - .ver 7:0:0:0 + .ver 8:0:0:0 } .assembly assembly { diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Quantifiers01.fs.il.netcore.debug.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Quantifiers01.fs.il.netcore.debug.bsl index 696e899e467..7da83cc1d73 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Quantifiers01.fs.il.netcore.debug.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Quantifiers01.fs.il.netcore.debug.bsl @@ -12,7 +12,7 @@ .assembly extern System.Linq { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) - .ver 7:0:0:0 + .ver 8:0:0:0 } .assembly assembly { diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Quantifiers01.fs.il.netcore.release.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Quantifiers01.fs.il.netcore.release.bsl index 696e899e467..7da83cc1d73 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Quantifiers01.fs.il.netcore.release.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/QueryExpressionStepping/Linq101Quantifiers01.fs.il.netcore.release.bsl @@ -12,7 +12,7 @@ .assembly extern System.Linq { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) - .ver 7:0:0:0 + .ver 8:0:0:0 } .assembly assembly { diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.il.netcore.bsl index 6e01e45aa2b..3a392760e0c 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/OptionalArg01.fs.il.netcore.bsl @@ -8,7 +8,7 @@ .assembly extern System.Collections { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) - .ver 7:0:0:0 + .ver 8:0:0:0 } .assembly assembly { diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs.il.netcore.bsl b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs.il.netcore.bsl index fe22081556b..e78d74b07c4 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs.il.netcore.bsl +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/Tuples/TupleElimination.fs.il.netcore.bsl @@ -8,7 +8,7 @@ .assembly extern System.Collections { .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A ) - .ver 7:0:0:0 + .ver 8:0:0:0 } .assembly assembly { diff --git a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj index a83d57f55a5..e0cbdfd0cde 100644 --- a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj +++ b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj @@ -3,8 +3,8 @@ - net472;net7.0 - net7.0 + net472;net8.0 + net8.0 Library false true diff --git a/tests/FSharp.Compiler.Private.Scripting.UnitTests/DependencyManagerInteractiveTests.fs b/tests/FSharp.Compiler.Private.Scripting.UnitTests/DependencyManagerInteractiveTests.fs index c37d087e9ea..8762968813b 100644 --- a/tests/FSharp.Compiler.Private.Scripting.UnitTests/DependencyManagerInteractiveTests.fs +++ b/tests/FSharp.Compiler.Private.Scripting.UnitTests/DependencyManagerInteractiveTests.fs @@ -89,7 +89,7 @@ type DependencyManagerInteractiveTests() = Assert.Equal(1, result.SourceFiles |> Seq.length) Assert.Equal(2, result.Roots |> Seq.length) - let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net7.0") + let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net8.0") Assert.Equal(true, result.Success) Assert.Equal(1, result.Resolutions |> Seq.length) Assert.Equal(1, result.SourceFiles |> Seq.length) @@ -111,7 +111,7 @@ type DependencyManagerInteractiveTests() = let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget") - let result = dp.Resolve(idm, ".fsx", [|"r", "Microsoft.Data.Sqlite, 3.1.8"|], reportError, "net7.0") + let result = dp.Resolve(idm, ".fsx", [|"r", "Microsoft.Data.Sqlite, 3.1.8"|], reportError, "net8.0") Assert.Equal(true, result.Success) Assert.True((result.Resolutions |> Seq.length) > 1) Assert.Equal(1, result.SourceFiles |> Seq.length) @@ -141,7 +141,7 @@ type DependencyManagerInteractiveTests() = Assert.Equal(0, result.SourceFiles |> Seq.length) Assert.Equal(0, result.Roots |> Seq.length) - let result = dp.Resolve(idm, ".fsx", [|"r", "System.Collections.Immutable.DoesNotExist"|], reportError, "net7.0") + let result = dp.Resolve(idm, ".fsx", [|"r", "System.Collections.Immutable.DoesNotExist"|], reportError, "net8.0") Assert.Equal(false, result.Success) Assert.Equal(0, result.Resolutions |> Seq.length) Assert.Equal(0, result.SourceFiles |> Seq.length) @@ -174,7 +174,7 @@ type DependencyManagerInteractiveTests() = Assert.True((result1.Roots |> Seq.head).EndsWith("/fsharp.data/3.3.3/")) Assert.True((result1.Roots |> Seq.last).EndsWith("/microsoft.netframework.referenceassemblies/1.0.0/")) - let result2 = dp1.Resolve(idm1, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net7.0") + let result2 = dp1.Resolve(idm1, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net8.0") Assert.Equal(true, result2.Success) Assert.Equal(1, result2.Resolutions |> Seq.length) let expected2 = "/netstandard2.0/" @@ -195,7 +195,7 @@ type DependencyManagerInteractiveTests() = Assert.Equal(1, result3.SourceFiles |> Seq.length) Assert.True((result3.Roots |> Seq.head).EndsWith("/system.json/4.6.0/")) - let result4 = dp2.Resolve(idm2, ".fsx", [|"r", "System.Json, Version=4.6.0"|], reportError, "net7.0") + let result4 = dp2.Resolve(idm2, ".fsx", [|"r", "System.Json, Version=4.6.0"|], reportError, "net8.0") Assert.Equal(true, result4.Success) Assert.Equal(1, result4.Resolutions |> Seq.length) let expected4 = "/netstandard2.0/" @@ -231,7 +231,7 @@ type DependencyManagerInteractiveTests() = // Netstandard gets fewer dependencies than desktop, because desktop framework doesn't contain assemblies like System.Memory // Those assemblies must be delivered by nuget for desktop apps - let result2 = dp1.Resolve(idm1, ".fsx", [|"r", "Microsoft.Extensions.Configuration.Abstractions, 3.1.1"|], reportError, "net7.0") + let result2 = dp1.Resolve(idm1, ".fsx", [|"r", "Microsoft.Extensions.Configuration.Abstractions, 3.1.1"|], reportError, "net8.0") Assert.Equal(true, result2.Success) Assert.Equal(2, result2.Resolutions |> Seq.length) let expected = "/netcoreapp3.1/" @@ -288,7 +288,7 @@ TorchSharp.Tensor.LongTensor.From([| 0L .. 100L |]).Device let result = use dp = new DependencyProvider(AssemblyResolutionProbe(assemblyProbingPaths), NativeResolutionProbe(nativeProbingRoots), false) let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget") - dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net7.0") + dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net8.0") Assert.True(result.Success, "resolve failed") @@ -384,7 +384,7 @@ printfn ""%A"" result let result = use dp = new DependencyProvider(NativeResolutionProbe(nativeProbingRoots), false) let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget") - dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net7.0") + dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net8.0") Assert.True(result.Success, "resolve failed") @@ -465,7 +465,7 @@ printfn ""%A"" result let result = use dp = new DependencyProvider(NativeResolutionProbe(nativeProbingRoots), false) let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget") - dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net7.0") + dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net8.0") Assert.True(result.Success, "resolve failed") @@ -522,7 +522,7 @@ x |> Seq.iter(fun r -> let result = use dp = new DependencyProvider(NativeResolutionProbe(nativeProbingRoots), false) let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget") - dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net7.0") + dp.Resolve(idm, ".fsx", packagemanagerlines, reportError, "net8.0") // Expected: error FS3217: PackageManager can not reference the System Package 'FSharp.Core' Assert.False(result.Success, "resolve succeeded but should have failed") @@ -548,7 +548,7 @@ x |> Seq.iter(fun r -> let result = use dp = new DependencyProvider(NativeResolutionProbe(nativeProbingRoots), false) let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget") - dp.Resolve(idm, ".csx", packagemanagerlines, reportError, "net7.0") + dp.Resolve(idm, ".csx", packagemanagerlines, reportError, "net8.0") Assert.True(result.Success, "resolve failed but should have succeeded") @@ -591,7 +591,7 @@ x |> Seq.iter(fun r -> Assert.Equal(1, result.SourceFiles |> Seq.length) Assert.Equal(2, result.Roots |> Seq.length) - let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net7.0") + let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net8.0") Assert.Equal(true, result.Success) Assert.Equal(1, result.Resolutions |> Seq.length) Assert.Equal(1, result.SourceFiles |> Seq.length) @@ -698,7 +698,7 @@ x |> Seq.iter(fun r -> let mutable currentPath:string = null use dp = new DependencyProvider(NativeResolutionProbe(nativeProbingRoots), false) let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget") - let result = dp.Resolve(idm, ".fsx", [|"r", "Microsoft.Data.Sqlite,3.1.7"|], reportError, "net7.0") + let result = dp.Resolve(idm, ".fsx", [|"r", "Microsoft.Data.Sqlite,3.1.7"|], reportError, "net8.0") Assert.Equal(true, result.Success) currentPath <- appendSemiColon (Environment.GetEnvironmentVariable("PATH")) finalPath <- appendSemiColon (Environment.GetEnvironmentVariable("PATH")) @@ -822,7 +822,7 @@ x |> Seq.iter(fun r -> ResolvingErrorReport (report) let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget") - let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net7.0", timeout=0) // Fail in 0 milliseconds + let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"|], reportError, "net8.0", timeout=0) // Fail in 0 milliseconds Assert.Equal(false, result.Success) Assert.Equal(foundCorrectError, true) Assert.Equal(foundWrongError, false) @@ -845,7 +845,7 @@ x |> Seq.iter(fun r -> ResolvingErrorReport (report) let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget") - let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=0"|], reportError, "net7.0", null, "", "", "", -1) // Wait forever + let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=0"|], reportError, "net8.0", null, "", "", "", -1) // Wait forever Assert.Equal(false, result.Success) Assert.Equal(foundCorrectError, true) Assert.Equal(foundWrongError, false) @@ -868,7 +868,7 @@ x |> Seq.iter(fun r -> ResolvingErrorReport (report) let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget") - let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=none"|], reportError, "net7.0", null, "", "", "", -1) // Wait forever + let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=none"|], reportError, "net8.0", null, "", "", "", -1) // Wait forever Assert.Equal(true, result.Success) Assert.Equal(foundCorrectError, false) Assert.Equal(foundWrongError, false) @@ -894,7 +894,7 @@ x |> Seq.iter(fun r -> let idm = dp.TryFindDependencyManagerByKey(Seq.empty, "", reportError, "nuget") // Resolve and cache the results won't time out - let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=10000"|], reportError, "net7.0", null, "", "", "", -1) // Wait forever + let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=10000"|], reportError, "net8.0", null, "", "", "", -1) // Wait forever // Clear the results foundCorrectError <- false @@ -903,9 +903,8 @@ x |> Seq.iter(fun r -> // Now clear the cache --- this will ensure that resolving produces a timeout error. If we read from the cache the test will fail dp.ClearResultsCache(Seq.empty, "", reportError) - let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=0"|], reportError, "net7.0", null, "", "", "", -1) // Wait forever + let result = dp.Resolve(idm, ".fsx", [|"r", "FSharp.Data,3.3.3"; "r", "timeout=0"|], reportError, "net8.0", null, "", "", "", -1) // Wait forever Assert.Equal(false, result.Success) Assert.Equal(foundCorrectError, true) Assert.Equal(foundWrongError, false) () - diff --git a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj index 57eb6cbb8e2..cdfd467e5c3 100644 --- a/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj +++ b/tests/FSharp.Compiler.Private.Scripting.UnitTests/FSharp.Compiler.Private.Scripting.UnitTests.fsproj @@ -2,8 +2,8 @@ - net472;net7.0 - net7.0 + net472;net8.0 + net8.0 Library true xunit diff --git a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj index eb9294585d9..21c996eb9e0 100644 --- a/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj +++ b/tests/FSharp.Compiler.Service.Tests/FSharp.Compiler.Service.Tests.fsproj @@ -3,8 +3,8 @@ Exe - net472;net7.0 - net7.0 + net472;net8.0 + net8.0 - - - - - - + + + + + + + target="lib\net8.0" /> + target="lib\net8.0" /> @@ -45,14 +45,14 @@ - + + target="lib\net8.0" /> - + target="lib\net8.0" /> + + target="lib\net8.0" /> Date: Fri, 2 Jun 2023 11:50:42 -0700 Subject: [PATCH 03/54] Update Microsoft.FSharp.Compiler.nuspec --- src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec index b2ff94bc491..ca36309d5da 100644 --- a/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec +++ b/src/Microsoft.FSharp.Compiler/Microsoft.FSharp.Compiler.nuspec @@ -33,6 +33,7 @@ From b265c68604681242d3a83db3f0f7b1bb97db4b93 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Mon, 5 Jun 2023 02:51:41 -0700 Subject: [PATCH 04/54] add review comment to sb files (#15288) (#15304) * add review comment to sb files * add CODEOWNERS entry for source-build Co-authored-by: Oleksandr Didyk <106967057+oleksandr-didyk@users.noreply.github.com> Co-authored-by: Vlad Zarytovskii --- .github/CODEOWNERS | 1 + eng/SourceBuild.props | 2 ++ eng/SourceBuildPrebuiltBaseline.xml | 3 +++ 3 files changed, 6 insertions(+) diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a05c971077b..16d61e579a1 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -1 +1,2 @@ * @dotnet/fsharp-team-msft +/eng/SourceBuild* @dotnet/source-build-internal diff --git a/eng/SourceBuild.props b/eng/SourceBuild.props index 49a1ea8c52b..a5c32ede700 100644 --- a/eng/SourceBuild.props +++ b/eng/SourceBuild.props @@ -1,3 +1,5 @@ + + diff --git a/eng/SourceBuildPrebuiltBaseline.xml b/eng/SourceBuildPrebuiltBaseline.xml index cbd4c12768b..5bb98787409 100644 --- a/eng/SourceBuildPrebuiltBaseline.xml +++ b/eng/SourceBuildPrebuiltBaseline.xml @@ -1,3 +1,6 @@ + + + From 653dfb413da53f6bffb635ecd6746e1015008681 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Mon, 5 Jun 2023 18:59:23 +0000 Subject: [PATCH 05/54] Update dependencies from https://github.com/dotnet/arcade build 20230602.3 Microsoft.DotNet.Arcade.Sdk From Version 8.0.0-beta.23255.2 -> To Version 8.0.0-beta.23302.3 Dependency coherency updates Microsoft.SourceBuild.Intermediate.xliff-tasks,Microsoft.SourceLink.GitHub From Version 1.0.0-beta.23253.1 -> To Version 1.0.0-beta.23279.1 (parent: Microsoft.DotNet.Arcade.Sdk --- eng/Version.Details.xml | 12 +-- eng/common/cross/build-rootfs.sh | 94 ++++++++++----------- eng/common/cross/toolchain.cmake | 13 +-- eng/common/cross/x64/sources.list.bionic | 11 +++ eng/common/sdk-task.ps1 | 2 +- eng/common/templates/job/job.yml | 12 ++- eng/common/templates/steps/source-build.yml | 6 ++ eng/common/tools.ps1 | 4 +- global.json | 6 +- 9 files changed, 90 insertions(+), 70 deletions(-) create mode 100644 eng/common/cross/x64/sources.list.bionic diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1e43d5e0fbd..cc3b6060345 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,9 +1,9 @@ - + https://github.com/dotnet/xliff-tasks - 513000e77df5ec1f9b86397d8df6e3254703c636 + 8fd12314c3e648c03a4189ba0bd1c3b09f5d6a01 @@ -34,14 +34,14 @@ - + https://github.com/dotnet/arcade - 5dff25b814b90abb85c847ed274cf4afb2c1b276 + 234e0726c7384ee84bf08550f2d16a1ff2d5c543 - + https://github.com/dotnet/sourcelink - 47c52dd2ebf9edfd40abdcff999c13eb461f6ce2 + 54eb3b811c57f5e94617d31a102fc9cb664ccdd5 diff --git a/eng/common/cross/build-rootfs.sh b/eng/common/cross/build-rootfs.sh index 6a59f753b5d..9caf9b021db 100755 --- a/eng/common/cross/build-rootfs.sh +++ b/eng/common/cross/build-rootfs.sh @@ -27,6 +27,7 @@ __AlpineArch=armv7 __FreeBSDArch=arm __FreeBSDMachineArch=armv7 __IllumosArch=arm7 +__HaikuArch=arm __QEMUArch=arm __UbuntuArch=armhf __UbuntuRepo="http://ports.ubuntu.com/" @@ -85,8 +86,12 @@ __IllumosPackages+=" mit-krb5" __IllumosPackages+=" openssl" __IllumosPackages+=" zlib" -__HaikuPackages="gmp" +__HaikuPackages="gcc_syslibs" +__HaikuPackages+=" gcc_syslibs_devel" +__HaikuPackages+=" gmp" __HaikuPackages+=" gmp_devel" +__HaikuPackages+=" icu66" +__HaikuPackages+=" icu66_devel" __HaikuPackages+=" krb5" __HaikuPackages+=" krb5_devel" __HaikuPackages+=" libiconv" @@ -95,6 +100,10 @@ __HaikuPackages+=" llvm12_libunwind" __HaikuPackages+=" llvm12_libunwind_devel" __HaikuPackages+=" mpfr" __HaikuPackages+=" mpfr_devel" +__HaikuPackages+=" openssl" +__HaikuPackages+=" openssl_devel" +__HaikuPackages+=" zlib" +__HaikuPackages+=" zlib_devel" # ML.NET dependencies __UbuntuPackages+=" libomp5" @@ -210,6 +219,7 @@ while :; do __FreeBSDArch=amd64 __FreeBSDMachineArch=amd64 __illumosArch=x86_64 + __HaikuArch=x86_64 __UbuntuRepo="http://archive.ubuntu.com/ubuntu/" ;; x86) @@ -340,7 +350,6 @@ while :; do ;; haiku) __CodeName=haiku - __BuildArch=x64 __SkipUnmount=1 ;; --skipunmount) @@ -559,67 +568,54 @@ elif [[ "$__CodeName" == "illumos" ]]; then elif [[ "$__CodeName" == "haiku" ]]; then JOBS=${MAXJOBS:="$(getconf _NPROCESSORS_ONLN)"} - echo "Building Haiku sysroot for x86_64" + echo "Building Haiku sysroot for $__HaikuArch" mkdir -p "$__RootfsDir/tmp" - cd "$__RootfsDir/tmp" - git clone -b hrev56235 https://review.haiku-os.org/haiku - git clone -b btrev43195 https://review.haiku-os.org/buildtools - cd "$__RootfsDir/tmp/buildtools" && git checkout 7487388f5110021d400b9f3b88e1a7f310dc066d - - # Fetch some unmerged patches - cd "$__RootfsDir/tmp/haiku" - ## Add development build profile (slimmer than nightly) - git fetch origin refs/changes/64/4164/1 && git -c commit.gpgsign=false cherry-pick FETCH_HEAD - - # Build jam - cd "$__RootfsDir/tmp/buildtools/jam" - make - - # Configure cross tools - echo "Building cross-compiler" - mkdir -p "$__RootfsDir/generated" - cd "$__RootfsDir/generated" - "$__RootfsDir/tmp/haiku/configure" -j"$JOBS" --sysroot "$__RootfsDir" --cross-tools-source "$__RootfsDir/tmp/buildtools" --build-cross-tools x86_64 - - # Build Haiku packages - echo "Building Haiku" - echo 'HAIKU_BUILD_PROFILE = "development-raw" ;' > UserProfileConfig - "$__RootfsDir/tmp/buildtools/jam/jam0" -j"$JOBS" -q 'package' 'Haiku' - - BaseUrl="https://depot.haiku-os.org/__api/v2/pkg/get-pkg" - - # Download additional packages - echo "Downloading additional required packages" + pushd "$__RootfsDir/tmp" + + mkdir "$__RootfsDir/tmp/download" + + echo "Downloading Haiku package tool" + git clone https://github.com/haiku/haiku-toolchains-ubuntu --depth 1 $__RootfsDir/tmp/script + wget -O "$__RootfsDir/tmp/download/hosttools.zip" $($__RootfsDir/tmp/script/fetch.sh --hosttools) + unzip -o "$__RootfsDir/tmp/download/hosttools.zip" -d "$__RootfsDir/tmp/bin" + + DepotBaseUrl="https://depot.haiku-os.org/__api/v2/pkg/get-pkg" + HpkgBaseUrl="https://eu.hpkg.haiku-os.org/haiku/master/$__HaikuArch/current" + + # Download Haiku packages + echo "Downloading Haiku packages" read -ra array <<<"$__HaikuPackages" for package in "${array[@]}"; do echo "Downloading $package..." # API documented here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L60 # The schema here: https://github.com/haiku/haikudepotserver/blob/master/haikudepotserver-api2/src/main/resources/api2/pkg.yaml#L598 - hpkgDownloadUrl="$(wget -qO- --post-data='{"name":"'"$package"'","repositorySourceCode":"haikuports_x86_64","versionType":"LATEST","naturalLanguageCode":"en"}' \ - --header='Content-Type:application/json' "$BaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')" - wget -P "$__RootfsDir/generated/download" "$hpkgDownloadUrl" + hpkgDownloadUrl="$(wget -qO- --post-data='{"name":"'"$package"'","repositorySourceCode":"haikuports_'$__HaikuArch'","versionType":"LATEST","naturalLanguageCode":"en"}' \ + --header='Content-Type:application/json' "$DepotBaseUrl" | jq -r '.result.versions[].hpkgDownloadURL')" + wget -P "$__RootfsDir/tmp/download" "$hpkgDownloadUrl" + done + for package in haiku haiku_devel; do + echo "Downloading $package..." + hpkgVersion="$(wget -qO- $HpkgBaseUrl | sed -n 's/^.*version: "\([^"]*\)".*$/\1/p')" + wget -P "$__RootfsDir/tmp/download" "$HpkgBaseUrl/packages/$package-$hpkgVersion-1-$__HaikuArch.hpkg" done - # Setup the sysroot - echo "Setting up sysroot and extracting needed packages" + # Set up the sysroot + echo "Setting up sysroot and extracting required packages" mkdir -p "$__RootfsDir/boot/system" - for file in "$__RootfsDir/generated/objects/haiku/x86_64/packaging/packages/"*.hpkg; do - "$__RootfsDir/generated/objects/linux/x86_64/release/tools/package/package" extract -C "$__RootfsDir/boot/system" "$file" - done - for file in "$__RootfsDir/generated/download/"*.hpkg; do - "$__RootfsDir/generated/objects/linux/x86_64/release/tools/package/package" extract -C "$__RootfsDir/boot/system" "$file" + for file in "$__RootfsDir/tmp/download/"*.hpkg; do + echo "Extracting $file..." + LD_LIBRARY_PATH="$__RootfsDir/tmp/bin" "$__RootfsDir/tmp/bin/package" extract -C "$__RootfsDir/boot/system" "$file" done + # Download buildtools + echo "Downloading Haiku buildtools" + wget -O "$__RootfsDir/tmp/download/buildtools.zip" $($__RootfsDir/tmp/script/fetch.sh --buildtools --arch=$__HaikuArch) + unzip -o "$__RootfsDir/tmp/download/buildtools.zip" -d "$__RootfsDir" + # Cleaning up temporary files echo "Cleaning up temporary files" + popd rm -rf "$__RootfsDir/tmp" - for name in "$__RootfsDir/generated/"*; do - if [[ "$name" =~ "cross-tools-" ]]; then - : # Keep the cross-compiler - else - rm -rf "$name" - fi - done elif [[ -n "$__CodeName" ]]; then if [[ "$__SkipSigCheck" == "0" ]]; then diff --git a/eng/common/cross/toolchain.cmake b/eng/common/cross/toolchain.cmake index ce01673c7a6..a88d643c8a7 100644 --- a/eng/common/cross/toolchain.cmake +++ b/eng/common/cross/toolchain.cmake @@ -6,6 +6,7 @@ unset(FREEBSD) unset(ILLUMOS) unset(ANDROID) unset(TIZEN) +unset(HAIKU) set(TARGET_ARCH_NAME $ENV{TARGET_BUILD_ARCH}) if(EXISTS ${CROSS_ROOTFS}/bin/freebsd-version) @@ -16,6 +17,7 @@ elseif(EXISTS ${CROSS_ROOTFS}/usr/platform/i86pc) set(ILLUMOS 1) elseif(EXISTS ${CROSS_ROOTFS}/boot/system/develop/headers/config/HaikuConfig.h) set(CMAKE_SYSTEM_NAME Haiku) + set(HAIKU 1) else() set(CMAKE_SYSTEM_NAME Linux) set(LINUX 1) @@ -76,7 +78,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "riscv64") set(CMAKE_SYSTEM_PROCESSOR riscv64) if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/riscv64-alpine-linux-musl) set(TOOLCHAIN "riscv64-alpine-linux-musl") - else() + else() set(TOOLCHAIN "riscv64-linux-gnu") endif() elseif(TARGET_ARCH_NAME STREQUAL "s390x") @@ -100,7 +102,7 @@ elseif(TARGET_ARCH_NAME STREQUAL "x64") elseif(ILLUMOS) set(TOOLCHAIN "x86_64-illumos") elseif(HAIKU) - set(TOOLCHAIN "x64_64-unknown-haiku") + set(TOOLCHAIN "x86_64-unknown-haiku") endif() elseif(TARGET_ARCH_NAME STREQUAL "x86") set(CMAKE_SYSTEM_PROCESSOR i686) @@ -214,10 +216,8 @@ elseif(HAIKU) return() endif() - set(SEARCH_PATH "${CROSS_ROOTFS}/generated/cross-tools-x86_64/bin") - find_program(EXEC_LOCATION_${exec} - PATHS ${SEARCH_PATH} + PATHS "${CROSS_ROOTFS}/cross-tools-x86_64/bin" NAMES "${TOOLSET_PREFIX}${exec}${CLR_CMAKE_COMPILER_FILE_NAME_VERSION}" "${TOOLSET_PREFIX}${exec}") @@ -296,6 +296,9 @@ elseif(TARGET_ARCH_NAME STREQUAL "x86") elseif(ILLUMOS) add_toolchain_linker_flag("-L${CROSS_ROOTFS}/lib/amd64") add_toolchain_linker_flag("-L${CROSS_ROOTFS}/usr/amd64/lib") +elseif(HAIKU) + add_toolchain_linker_flag("-lnetwork") + add_toolchain_linker_flag("-lroot") endif() # Specify compile options diff --git a/eng/common/cross/x64/sources.list.bionic b/eng/common/cross/x64/sources.list.bionic new file mode 100644 index 00000000000..a71ccadcffa --- /dev/null +++ b/eng/common/cross/x64/sources.list.bionic @@ -0,0 +1,11 @@ +deb http://archive.ubuntu.com/ubuntu/ bionic main restricted universe +deb-src http://archive.ubuntu.com/ubuntu/ bionic main restricted universe + +deb http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe +deb-src http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted universe + +deb http://archive.ubuntu.com/ubuntu/ bionic-backports main restricted +deb-src http://archive.ubuntu.com/ubuntu/ bionic-backports main restricted + +deb http://archive.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse +deb-src http://archive.ubuntu.com/ubuntu/ bionic-security main restricted universe multiverse diff --git a/eng/common/sdk-task.ps1 b/eng/common/sdk-task.ps1 index e10a5968797..6c4ac6fec1a 100644 --- a/eng/common/sdk-task.ps1 +++ b/eng/common/sdk-task.ps1 @@ -64,7 +64,7 @@ try { $GlobalJson.tools | Add-Member -Name "vs" -Value (ConvertFrom-Json "{ `"version`": `"16.5`" }") -MemberType NoteProperty } if( -not ($GlobalJson.tools.PSObject.Properties.Name -match "xcopy-msbuild" )) { - $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.4.1" -MemberType NoteProperty + $GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.6.0-2" -MemberType NoteProperty } if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") { $xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true diff --git a/eng/common/templates/job/job.yml b/eng/common/templates/job/job.yml index 44ad26abf54..e20ee3a983c 100644 --- a/eng/common/templates/job/job.yml +++ b/eng/common/templates/job/job.yml @@ -75,6 +75,10 @@ jobs: - ${{ if eq(parameters.enableRichCodeNavigation, 'true') }}: - name: EnableRichCodeNavigation value: 'true' + # Retry signature validation up to three times, waiting 2 seconds between attempts. + # See https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu3028#retry-untrusted-root-failures + - name: NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY + value: 3,2000 - ${{ each variable in parameters.variables }}: # handle name-value variable syntax # example: @@ -83,7 +87,7 @@ jobs: - ${{ if ne(variable.name, '') }}: - name: ${{ variable.name }} value: ${{ variable.value }} - + # handle variable groups - ${{ if ne(variable.group, '') }}: - group: ${{ variable.group }} @@ -169,7 +173,7 @@ jobs: - ${{ if eq(parameters.enableMicrobuild, 'true') }}: - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - task: MicroBuildCleanup@1 - displayName: Execute Microbuild cleanup tasks + displayName: Execute Microbuild cleanup tasks condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT')) continueOnError: ${{ parameters.continueOnError }} env: @@ -219,7 +223,7 @@ jobs: displayName: Publish XUnit Test Results inputs: testResultsFormat: 'xUnit' - testResultsFiles: '*.xml' + testResultsFiles: '*.xml' searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-xunit mergeTestResults: ${{ parameters.mergeTestResults }} @@ -230,7 +234,7 @@ jobs: displayName: Publish TRX Test Results inputs: testResultsFormat: 'VSTest' - testResultsFiles: '*.trx' + testResultsFiles: '*.trx' searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)' testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-trx mergeTestResults: ${{ parameters.mergeTestResults }} diff --git a/eng/common/templates/steps/source-build.yml b/eng/common/templates/steps/source-build.yml index a97a185a367..1100521834a 100644 --- a/eng/common/templates/steps/source-build.yml +++ b/eng/common/templates/steps/source-build.yml @@ -68,6 +68,11 @@ steps: runtimeOsArgs='/p:RuntimeOS=${{ parameters.platform.runtimeOS }}' fi + baseOsArgs= + if [ '${{ parameters.platform.baseOS }}' != '' ]; then + baseOsArgs='/p:BaseOS=${{ parameters.platform.baseOS }}' + fi + publishArgs= if [ '${{ parameters.platform.skipPublishValidation }}' != 'true' ]; then publishArgs='--publish' @@ -86,6 +91,7 @@ steps: $internalRestoreArgs \ $targetRidArgs \ $runtimeOsArgs \ + $baseOsArgs \ /p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \ /p:ArcadeBuildFromSource=true \ /p:AssetManifestFileName=$assetManifestFileName diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index 38cf94ff88c..ffe0b4e2dfc 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -384,8 +384,8 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = # If the version of msbuild is going to be xcopied, # use this version. Version matches a package here: - # https://dev.azure.com/dnceng/public/_packaging?_a=package&feed=dotnet-eng&package=RoslynTools.MSBuild&protocolType=NuGet&version=17.4.1&view=overview - $defaultXCopyMSBuildVersion = '17.4.1' + # https://dev.azure.com/dnceng/public/_artifacts/feed/dotnet-eng/NuGet/RoslynTools.MSBuild/versions/17.6.0-2 + $defaultXCopyMSBuildVersion = '17.6.0-2' if (!$vsRequirements) { if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') { diff --git a/global.json b/global.json index 7e61f258d82..a85e2fe2933 100644 --- a/global.json +++ b/global.json @@ -1,11 +1,11 @@ { "sdk": { - "version": "8.0.100-preview.3.23178.7", + "version": "8.0.100-preview.4.23260.5", "allowPrerelease": true, "rollForward": "latestPatch" }, "tools": { - "dotnet": "8.0.100-preview.3.23178.7", + "dotnet": "8.0.100-preview.4.23260.5", "vs": { "version": "17.5", "components": [ @@ -18,7 +18,7 @@ "perl": "5.32.1.1" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23255.2", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23302.3", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } } From 9b2f9114a3c53c184368ab059beba724164609ad Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 6 Jun 2023 02:33:31 -0700 Subject: [PATCH 06/54] Merge main to release/net8 (#15312) * add review comment to sb files (#15288) * add review comment to sb files * add CODEOWNERS entry for source-build * Don't show inline hint for arguments with same names as the parameters in DU (#15305) * Signature of nested type with generic type parameter (#15259) * Proof of concept * Add generic parameter names to ModuleOrType. * Revert ModuleOrType change * Process ticks in demangledPath of TType_app. * Only apply new logic when includeStaticParametersInTypeNames is active. * Use FactForNETCOREAPP * Fix build --------- Co-authored-by: Tomas Grosup * Improve implied lambda and delegate argument names (#15277) * Improve implied lambda and delegate argument names * Fix * Add tests * Revert non-preview tests * Sigh * Re-revert * Fix test * Add testx --------- Co-authored-by: Oleksandr Didyk <106967057+oleksandr-didyk@users.noreply.github.com> Co-authored-by: Sudqi Co-authored-by: Florian Verdonck Co-authored-by: Tomas Grosup Co-authored-by: kerams --- src/Compiler/Checking/CheckExpressions.fs | 44 +++-- src/Compiler/Checking/MethodCalls.fs | 17 +- src/Compiler/Checking/NicePrint.fs | 65 ++++++- src/Compiler/Checking/infos.fs | 15 ++ src/Compiler/Checking/infos.fsi | 3 + src/Compiler/FSComp.txt | 1 + src/Compiler/Facilities/LanguageFeatures.fs | 3 + src/Compiler/Facilities/LanguageFeatures.fsi | 1 + src/Compiler/TypedTree/TypedTreeOps.fs | 3 +- src/Compiler/xlf/FSComp.txt.cs.xlf | 5 + src/Compiler/xlf/FSComp.txt.de.xlf | 5 + src/Compiler/xlf/FSComp.txt.es.xlf | 5 + src/Compiler/xlf/FSComp.txt.fr.xlf | 5 + src/Compiler/xlf/FSComp.txt.it.xlf | 5 + src/Compiler/xlf/FSComp.txt.ja.xlf | 5 + src/Compiler/xlf/FSComp.txt.ko.xlf | 5 + src/Compiler/xlf/FSComp.txt.pl.xlf | 5 + src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 5 + src/Compiler/xlf/FSComp.txt.ru.xlf | 5 + src/Compiler/xlf/FSComp.txt.tr.xlf | 5 + src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 5 + src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 5 + .../EmittedIL/ArgumentNames.fs | 178 ++++++++++++++++++ .../FSharp.Compiler.ComponentTests.fsproj | 2 + .../Signatures/NestedTypeTests.fs | 99 ++++++++++ tests/FSharp.Test.Utilities/Compiler.fs | 24 ++- tests/service/ExprTests.fs | 12 +- .../src/FSharp.Editor/Hints/HintService.fs | 2 +- .../Hints/InlineParameterNameHints.fs | 12 +- .../Hints/InlineParameterNameHintTests.fs | 33 ++++ 30 files changed, 545 insertions(+), 34 deletions(-) create mode 100644 tests/FSharp.Compiler.ComponentTests/EmittedIL/ArgumentNames.fs create mode 100644 tests/FSharp.Compiler.ComponentTests/Signatures/NestedTypeTests.fs diff --git a/src/Compiler/Checking/CheckExpressions.fs b/src/Compiler/Checking/CheckExpressions.fs index 9df233a9388..f18525f47f2 100644 --- a/src/Compiler/Checking/CheckExpressions.fs +++ b/src/Compiler/Checking/CheckExpressions.fs @@ -8445,7 +8445,19 @@ and TcUnionCaseOrExnCaseOrActivePatternResultItemThen (cenv: cenv) overallTy env // This is where the constructor expects arguments but is not applied to arguments, hence build a lambda numArgTys, (fun () -> - let vs, args = argTys |> List.mapi (fun i ty -> mkCompGenLocal mItem ("arg" + string i) ty) |> List.unzip + let argNamesIfFeatureEnabled = + if g.langVersion.SupportsFeature LanguageFeature.ImprovedImpliedArgumentNames then + argNames + else + [] + + let vs, args = + argTys + |> List.mapi (fun i ty -> + let argName = argNamesIfFeatureEnabled |> List.tryItem i |> Option.map (fun x -> x.idText) |> Option.defaultWith (fun () -> "arg" + string i) + mkCompGenLocal mItem argName ty) + |> List.unzip + let constrApp = mkConstrApp mItem args let lam = mkMultiLambda mItem vs (constrApp, tyOfExpr g constrApp) lam) @@ -9535,7 +9547,13 @@ and TcMethodApplication_CheckArguments let denv = env.DisplayEnv match curriedCallerArgsOpt with | None -> - let curriedArgTys, returnTy = + let curriedArgTys, curriedArgNamesIfFeatureEnabled, returnTy = + let paramNamesIfFeatureEnabled (g: TcGlobals) (meth: MethInfo) = + if g.langVersion.SupportsFeature LanguageFeature.ImprovedImpliedArgumentNames then + meth.GetParamNames() + else + [] + match candidates with // "single named item" rule. This is where we have a single accessible method // member x.M(arg1, ..., argN) @@ -9547,19 +9565,23 @@ and TcMethodApplication_CheckArguments // to their default values (for optionals) and be part of the return tuple (for out args). | [calledMeth] -> let curriedArgTys, returnTy = UnifyMatchingSimpleArgumentTypes cenv env exprTy.Commit calledMeth mMethExpr mItem - curriedArgTys, MustEqual returnTy + curriedArgTys, paramNamesIfFeatureEnabled g calledMeth, MustEqual returnTy | _ -> let domainTy, returnTy = UnifyFunctionType None cenv denv mMethExpr exprTy.Commit let argTys = if isUnitTy g domainTy then [] else tryDestRefTupleTy g domainTy // Only apply this rule if a candidate method exists with this number of arguments - let argTys = - if candidates |> List.exists (CalledMethHasSingleArgumentGroupOfThisLength argTys.Length) then - argTys - else - [domainTy] - [argTys], MustEqual returnTy - - let lambdaVarsAndExprs = curriedArgTys |> List.mapiSquared (fun i j ty -> mkCompGenLocal mMethExpr ("arg"+string i+string j) ty) + let argTys, argNames = + match candidates |> List.tryFind (CalledMethHasSingleArgumentGroupOfThisLength argTys.Length) with + | Some meth -> argTys, paramNamesIfFeatureEnabled g meth + | None -> [domainTy], [[None]] + [argTys], argNames, MustEqual returnTy + + let lambdaVarsAndExprs = + curriedArgTys + |> List.mapiSquared (fun i j ty -> + let argName = curriedArgNamesIfFeatureEnabled |> List.tryItem i |> Option.bind (List.tryItem j) |> Option.flatten |> Option.defaultWith (fun () -> "arg" + string i + string j) + mkCompGenLocal mMethExpr argName ty) + let unnamedCurriedCallerArgs = lambdaVarsAndExprs |> List.mapSquared (fun (_, e) -> CallerArg(tyOfExpr g e, e.Range, false, e)) let namedCurriedCallerArgs = lambdaVarsAndExprs |> List.map (fun _ -> []) let lambdaVars = List.mapSquared fst lambdaVarsAndExprs diff --git a/src/Compiler/Checking/MethodCalls.fs b/src/Compiler/Checking/MethodCalls.fs index ceb13545da8..67b3a61fd5c 100644 --- a/src/Compiler/Checking/MethodCalls.fs +++ b/src/Compiler/Checking/MethodCalls.fs @@ -1266,8 +1266,23 @@ let BuildNewDelegateExpr (eventInfoOpt: EventInfo option, g, amap, delegateTy, d if List.exists (isByrefTy g) delArgTys then error(Error(FSComp.SR.tcFunctionRequiresExplicitLambda(delArgTys.Length), m)) + let delFuncArgNamesIfFeatureEnabled = + match delFuncExpr with + | Expr.Val (valRef = vref) when g.langVersion.SupportsFeature LanguageFeature.ImprovedImpliedArgumentNames -> + match vref.ValReprInfo with + | Some repr when repr.ArgNames.Length = delArgTys.Length -> Some repr.ArgNames + | _ -> None + | _ -> None + let delArgVals = - delArgTys |> List.mapi (fun i argTy -> fst (mkCompGenLocal m ("delegateArg" + string i) argTy)) + delArgTys + |> List.mapi (fun i argTy -> + let argName = + match delFuncArgNamesIfFeatureEnabled with + | Some argNames -> argNames[i] + | None -> "delegateArg" + string i + + fst (mkCompGenLocal m argName argTy)) let expr = let args = diff --git a/src/Compiler/Checking/NicePrint.fs b/src/Compiler/Checking/NicePrint.fs index 95da6fa9bfd..572dfa451cc 100644 --- a/src/Compiler/Checking/NicePrint.fs +++ b/src/Compiler/Checking/NicePrint.fs @@ -168,7 +168,19 @@ module internal PrintUtilities = | GenericParameterStyle.Prefix -> true | GenericParameterStyle.Suffix -> false - let layoutTyconRefImpl isAttribute (denv: DisplayEnv) (tcref: TyconRef) = + /// + /// Creates a layout for TyconRef. + /// + /// + /// + /// + /// + /// Used in the case the TyconRef is a nested type from another assembly which has generic type parameters in the path. + /// For example: System.Collections.Immutable.ImmutableArray>'T<.Builder + /// Lead to access path: System.Collections.Immutable.ImmutableArray`1 + /// ImmutableArray`1 will be transformed to ImmutableArray>'t< + /// + let layoutTyconRefImpl isAttribute (denv: DisplayEnv) (tcref: TyconRef) (demangledPath: string list option) = let prefix = usePrefix denv tcref let isArray = not prefix && isArrayTyconRef denv.g tcref @@ -201,21 +213,22 @@ module internal PrintUtilities = if denv.shortTypeNames then tyconTextL else - let path = tcref.CompilationPath.DemangledPath let path = if denv.includeStaticParametersInTypeNames then - path + Option.defaultValue tcref.CompilationPath.DemangledPath demangledPath else - path |> List.map (fun s -> + tcref.CompilationPath.DemangledPath + |> List.map (fun s -> let i = s.IndexOf(',') if i <> -1 then s.Substring(0, i)+"<...>" // apparently has static params, shorten else s) + let pathText = trimPathByDisplayEnv denv path if pathText = "" then tyconTextL else leftL (tagUnknownEntity pathText) ^^ tyconTextL let layoutBuiltinAttribute (denv: DisplayEnv) (attrib: BuiltinAttribInfo) = let tcref = attrib.TyconRef - squareAngleL (layoutTyconRefImpl true denv tcref) + squareAngleL (layoutTyconRefImpl true denv tcref None) /// layout the xml docs immediately before another block let layoutXmlDoc (denv: DisplayEnv) alwaysAddEmptyLine (xml: XmlDoc) restL = @@ -499,7 +512,7 @@ module PrintTypes = layoutAccessibilityCore denv accessibility ++ itemL /// Layout a reference to a type - let layoutTyconRef denv tcref = layoutTyconRefImpl false denv tcref + let layoutTyconRef denv tcref = layoutTyconRefImpl false denv tcref None /// Layout the flags of a member let layoutMemberFlags (memFlags: SynMemberFlags) = @@ -571,7 +584,7 @@ module PrintTypes = /// Layout an attribute 'Type(arg1, ..., argN)' and layoutAttrib denv (Attrib(tcref, _, args, props, _, _, _)) = - let tcrefL = layoutTyconRefImpl true denv tcref + let tcrefL = layoutTyconRefImpl true denv tcref None let argsL = bracketL (layoutAttribArgs denv args props) if List.isEmpty args && List.isEmpty props then tcrefL @@ -900,7 +913,39 @@ module PrintTypes = | TType_ucase (UnionCaseRef(tc, _), args) | TType_app (tc, args, _) -> let prefix = usePrefix denv tc - layoutTypeAppWithInfoAndPrec denv env (layoutTyconRef denv tc) prec prefix args + let demangledCompilationPathOpt, args = + if not denv.includeStaticParametersInTypeNames then + None, args + else + let regex = System.Text.RegularExpressions.Regex(@"\`\d+") + let path, skip = + (0, tc.CompilationPath.DemangledPath) + ||> List.mapFold (fun skip path -> + // Verify the path does not contain a generic parameter count. + // For example Foo`3 indicates that there are three parameters in args that belong to this path. + let m = regex.Match(path) + if not m.Success then + path, skip + else + let take = m.Value.Replace("`", "") |> int + let genericArgs = + List.skip skip args + |> List.take take + |> List.map (layoutTypeWithInfoAndPrec denv env prec >> showL) + |> String.concat "," + |> sprintf "<%s>" + String.Concat(path.Substring(0, m.Index), genericArgs), (skip + take) + ) + + Some path, List.skip skip args + + layoutTypeAppWithInfoAndPrec + denv + env + (layoutTyconRefImpl false denv tc demangledCompilationPathOpt) + prec + prefix + args // Layout a tuple type | TType_anon (anonInfo, tys) -> @@ -1621,7 +1666,7 @@ module TastDefinitionPrinting = let layoutExtensionMember denv infoReader (vref: ValRef) = let (@@*) = if denv.printVerboseSignatures then (@@----) else (@@--) let tycon = vref.MemberApparentEntity.Deref - let nameL = layoutTyconRefImpl false denv vref.MemberApparentEntity + let nameL = layoutTyconRefImpl false denv vref.MemberApparentEntity None let nameL = layoutAccessibility denv tycon.Accessibility nameL // "type-accessibility" let tps = match PartitionValTyparsForApparentEnclosingType denv.g vref.Deref with @@ -2615,7 +2660,7 @@ let stringOfFSAttrib denv x = x |> PrintTypes.layoutAttrib denv |> squareAngleL let stringOfILAttrib denv x = x |> PrintTypes.layoutILAttrib denv |> squareAngleL |> showL -let fqnOfEntityRef g x = x |> layoutTyconRefImpl false (DisplayEnv.Empty g) |> showL +let fqnOfEntityRef g x = layoutTyconRefImpl false (DisplayEnv.Empty g) x None |> showL let layoutImpliedSignatureOfModuleOrNamespace showHeader denv infoReader ad m contents = InferredSigPrinting.layoutImpliedSignatureOfModuleOrNamespace showHeader denv infoReader ad m contents diff --git a/src/Compiler/Checking/infos.fs b/src/Compiler/Checking/infos.fs index 2fe6031aeae..4548b98eb39 100644 --- a/src/Compiler/Checking/infos.fs +++ b/src/Compiler/Checking/infos.fs @@ -1100,6 +1100,21 @@ type MethInfo = member x.GetFSharpReturnType(amap, m, minst) = x.GetCompiledReturnType(amap, m, minst) |> GetFSharpViewOfReturnType amap.g + member x.GetParamNames() = + match x with + | FSMeth (g, _, vref, _) -> + ParamNameAndType.FromMember x.IsCSharpStyleExtensionMember g vref |> List.mapSquared (fun (ParamNameAndType (name, _)) -> name |> Option.map (fun x -> x.idText)) + | ILMeth (ilMethInfo = ilminfo) -> + // A single group of tupled arguments + [ ilminfo.ParamMetadata |> List.map (fun x -> x.Name) ] +#if !NO_TYPEPROVIDERS + | ProvidedMeth (_, mi, _, m) -> + // A single group of tupled arguments + [ [ for p in mi.PApplyArray((fun mi -> mi.GetParameters()), "GetParameters", m) do + yield p.PUntaint((fun p -> Some p.Name), m) ] ] +#endif + | _ -> [] + /// Get the parameter types of a method info member x.GetParamTypes(amap, m, minst) = match x with diff --git a/src/Compiler/Checking/infos.fsi b/src/Compiler/Checking/infos.fsi index 550c7860b34..eb34d3523cb 100644 --- a/src/Compiler/Checking/infos.fsi +++ b/src/Compiler/Checking/infos.fsi @@ -517,6 +517,9 @@ type MethInfo = /// Get the ParamData objects for the parameters of a MethInfo member GetParamDatas: amap: ImportMap * m: range * minst: TType list -> ParamData list list + /// Get the parameter names of a MethInfo + member GetParamNames: unit -> string option list list + /// Get the parameter types of a method info member GetParamTypes: amap: ImportMap * m: range * minst: TType list -> TType list list diff --git a/src/Compiler/FSComp.txt b/src/Compiler/FSComp.txt index cd463878354..43a4b71349b 100644 --- a/src/Compiler/FSComp.txt +++ b/src/Compiler/FSComp.txt @@ -1573,6 +1573,7 @@ featureNonInlineLiteralsAsPrintfFormat,"String values marked as literals and IL featureNestedCopyAndUpdate,"Nested record field copy-and-update" featureExtendedStringInterpolation,"Extended string interpolation similar to C# raw string literals." featureWarningWhenMultipleRecdTypeChoice,"Raises warnings when multiple record type matches were found during name resolution because of overlapping field names." +featureImprovedImpliedArgumentNames,"Improved implied argument names" 3353,fsiInvalidDirective,"Invalid directive '#%s %s'" 3354,tcNotAFunctionButIndexerNamedIndexingNotYetEnabled,"This value supports indexing, e.g. '%s.[index]'. The syntax '%s[index]' requires /langversion:preview. See https://aka.ms/fsharp-index-notation." 3354,tcNotAFunctionButIndexerIndexingNotYetEnabled,"This expression supports indexing, e.g. 'expr.[index]'. The syntax 'expr[index]' requires /langversion:preview. See https://aka.ms/fsharp-index-notation." diff --git a/src/Compiler/Facilities/LanguageFeatures.fs b/src/Compiler/Facilities/LanguageFeatures.fs index 996b63760e8..f85f7833e16 100644 --- a/src/Compiler/Facilities/LanguageFeatures.fs +++ b/src/Compiler/Facilities/LanguageFeatures.fs @@ -68,6 +68,7 @@ type LanguageFeature = | NestedCopyAndUpdate | ExtendedStringInterpolation | WarningWhenMultipleRecdTypeChoice + | ImprovedImpliedArgumentNames /// LanguageVersion management type LanguageVersion(versionText) = @@ -159,6 +160,7 @@ type LanguageVersion(versionText) = LanguageFeature.NestedCopyAndUpdate, previewVersion LanguageFeature.ExtendedStringInterpolation, previewVersion LanguageFeature.WarningWhenMultipleRecdTypeChoice, previewVersion + LanguageFeature.ImprovedImpliedArgumentNames, previewVersion ] @@ -282,6 +284,7 @@ type LanguageVersion(versionText) = | LanguageFeature.NestedCopyAndUpdate -> FSComp.SR.featureNestedCopyAndUpdate () | LanguageFeature.ExtendedStringInterpolation -> FSComp.SR.featureExtendedStringInterpolation () | LanguageFeature.WarningWhenMultipleRecdTypeChoice -> FSComp.SR.featureWarningWhenMultipleRecdTypeChoice () + | LanguageFeature.ImprovedImpliedArgumentNames -> FSComp.SR.featureImprovedImpliedArgumentNames () /// Get a version string associated with the given feature. static member GetFeatureVersionString feature = diff --git a/src/Compiler/Facilities/LanguageFeatures.fsi b/src/Compiler/Facilities/LanguageFeatures.fsi index ab85fdc4aae..dcc0c660f2c 100644 --- a/src/Compiler/Facilities/LanguageFeatures.fsi +++ b/src/Compiler/Facilities/LanguageFeatures.fsi @@ -58,6 +58,7 @@ type LanguageFeature = | NestedCopyAndUpdate | ExtendedStringInterpolation | WarningWhenMultipleRecdTypeChoice + | ImprovedImpliedArgumentNames /// LanguageVersion management type LanguageVersion = diff --git a/src/Compiler/TypedTree/TypedTreeOps.fs b/src/Compiler/TypedTree/TypedTreeOps.fs index 702f7292429..1e15447646c 100644 --- a/src/Compiler/TypedTree/TypedTreeOps.fs +++ b/src/Compiler/TypedTree/TypedTreeOps.fs @@ -3117,7 +3117,8 @@ type DisplayEnv = suppressInlineKeyword = false showDocumentation = true shrinkOverloads = false - escapeKeywordNames = true } + escapeKeywordNames = true + includeStaticParametersInTypeNames = true } denv.SetOpenPaths [ FSharpLib.RootPath FSharpLib.CorePath diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index 69d868814d0..0463f932964 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -272,6 +272,11 @@ implicitní yield + + Improved implied argument names + Improved implied argument names + + expr[idx] notation for indexing and slicing Notace expr[idx] pro indexování a vytváření řezů diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index e372842d253..ee5d2c85eee 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -272,6 +272,11 @@ implizite yield-Anweisung + + Improved implied argument names + Improved implied argument names + + expr[idx] notation for indexing and slicing expr[idx]-Notation zum Indizieren und Aufteilen diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index 480813c8e22..f4782ec0fb9 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -272,6 +272,11 @@ elemento yield implícito + + Improved implied argument names + Improved implied argument names + + expr[idx] notation for indexing and slicing Notación para indexación y segmentación expr[idx] diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index 6c3ee073570..d2582301f83 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -272,6 +272,11 @@ yield implicite + + Improved implied argument names + Improved implied argument names + + expr[idx] notation for indexing and slicing Notation expr[idx] pour l’indexation et le découpage diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index e47a248b9dc..2317547d1af 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -272,6 +272,11 @@ istruzione yield implicita + + Improved implied argument names + Improved implied argument names + + expr[idx] notation for indexing and slicing Notazione expr[idx] per l'indicizzazione e il sezionamento diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 22a3b97a621..cc4ef5a416f 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -272,6 +272,11 @@ 暗黙的な yield + + Improved implied argument names + Improved implied argument names + + expr[idx] notation for indexing and slicing インデックス作成とスライス用の expr[idx] 表記 diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index e99b84363e2..b2654ea3d53 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -272,6 +272,11 @@ 암시적 yield + + Improved implied argument names + Improved implied argument names + + expr[idx] notation for indexing and slicing 인덱싱 및 슬라이싱을 위한 expr[idx] 표기법 diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index 94f6c4edfce..099c990c934 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -272,6 +272,11 @@ niejawne słowo kluczowe yield + + Improved implied argument names + Improved implied argument names + + expr[idx] notation for indexing and slicing notacja wyrażenia expr[idx] do indeksowania i fragmentowania diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index 37390cf9ef9..1af65d00b33 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -272,6 +272,11 @@ yield implícito + + Improved implied argument names + Improved implied argument names + + expr[idx] notation for indexing and slicing notação expr[idx] para indexação e fatia diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index 5ed87a2747f..eef33789409 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -272,6 +272,11 @@ неявное использование yield + + Improved implied argument names + Improved implied argument names + + expr[idx] notation for indexing and slicing expr[idx] для индексации и среза diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index bc9a8d090e4..4700c44f307 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -272,6 +272,11 @@ örtük yield + + Improved implied argument names + Improved implied argument names + + expr[idx] notation for indexing and slicing Dizin oluşturma ve dilimleme için expr[idx] gösterimi diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index eb467ba660f..2c88f9fe9c8 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -272,6 +272,11 @@ 隐式 yield + + Improved implied argument names + Improved implied argument names + + expr[idx] notation for indexing and slicing 用于索引和切片的 expr[idx] 表示法 diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 1e96abf59d5..82f98673bf3 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -272,6 +272,11 @@ 隱含 yield + + Improved implied argument names + Improved implied argument names + + expr[idx] notation for indexing and slicing 用於編製索引和分割的 expr[idx] 註釋 diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/ArgumentNames.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ArgumentNames.fs new file mode 100644 index 00000000000..f23179b7fa8 --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/ArgumentNames.fs @@ -0,0 +1,178 @@ +// Copyright (c) Microsoft Corporation. All Rights Reserved. See License.txt in the project root for license information. + +namespace FSharp.Compiler.ComponentTests.EmittedIL + +open Xunit +open FSharp.Test.Compiler + +module ArgumentNames = + + [] + let ``Implied argument names are taken from method or constructor``() = + FSharp """ +module ArgumentNames + +type M (name: string, count: int) = + [] + static member Open (fileName: string) = () + +let test1 = M +let test2 = M.Open + """ + |> withLangVersionPreview + |> compile + |> shouldSucceed + |> verifyIL [""" +.method public static class ArgumentNames/M + test1(string name, + int32 count) cil managed +{ + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: newobj instance void ArgumentNames/M::.ctor(string, + int32) + IL_0007: ret +} + +.method public static void test2(string fileName) cil managed +{ + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: call void ArgumentNames/M::Open(string) + IL_0006: ret +} """ ] + + [] + let ``Implied argument names are taken from curried method``() = + FSharp """ +module ArgumentNames + +type M = + [] + static member Write (fileName: string, offset: int) (data: byte[]) = () + +let test1 = M.Write + """ + |> withLangVersionPreview + |> compile + |> shouldSucceed + |> verifyIL [""" +.method public static void test1(string fileName, + int32 offset, + uint8[] data) cil managed +{ + .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationArgumentCountsAttribute::.ctor(int32[]) = ( 01 00 02 00 00 00 02 00 00 00 01 00 00 00 00 00 ) + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: ldarg.2 + IL_0003: call void ArgumentNames/M::Write(string, + int32, + uint8[]) + IL_0008: ret +} """ ] + + [] + let ``Implied argument names are taken from C#-style extension method``() = + FSharp """ +module ArgumentNames + +open System.Runtime.CompilerServices + +[] +type Ext = + [] + [] + static member Print(x: int, yy: string) = printfn "%d%s" x yy + +let test1 = (3).Print + """ + |> withLangVersionPreview + |> compile + |> shouldSucceed + |> verifyIL [""" + Invoke(string yy) cil managed +{ + + .maxstack 8 + IL_0000: ldc.i4.3 + IL_0001: ldarg.1 + IL_0002: call void ArgumentNames/Ext::Print(int32, + string) + IL_0007: ldnull + IL_0008: ret +} """ ] + + [] + let ``Implied argument names are taken from DU case constructor or exception``() = + FSharp """ +module ArgumentNames + +exception X of code: int * string + +type DU = + | Case1 of code: int * string + +let test1 = X +let test2 = Case1 + """ + |> withLangVersionPreview + |> compile + |> shouldSucceed + |> verifyIL [""" +.method public static class [runtime]System.Exception + test1(int32 code, + string Data1) cil managed +{ + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: newobj instance void ArgumentNames/X::.ctor(int32, + string) + IL_0007: ret +} + +.method public static class ArgumentNames/DU + test2(int32 code, + string Item2) cil managed +{ + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: call class ArgumentNames/DU ArgumentNames/DU::NewCase1(int32, + string) + IL_0007: ret +} """ ] + + [] + let ``Implied argument names are taken from function and used in delegate Invoke``() = + FSharp """ +module ArgumentNames + +[] +let add num1 num2 = printfn "%d" (num1 + num2) + +let test1 = System.Action<_, _>(add) + """ + |> withLangVersionPreview + |> compile + |> shouldSucceed + |> verifyIL [""" +.method assembly static void Invoke(int32 num1, + int32 num2) cil managed +{ + + .maxstack 8 + IL_0000: ldarg.0 + IL_0001: ldarg.1 + IL_0002: tail. + IL_0004: call void ArgumentNames::'add'(int32, + int32) + IL_0009: ret +} """ ] diff --git a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj index ed872c1ae61..f310980af4e 100644 --- a/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj +++ b/tests/FSharp.Compiler.ComponentTests/FSharp.Compiler.ComponentTests.fsproj @@ -113,6 +113,7 @@ + @@ -247,6 +248,7 @@ + diff --git a/tests/FSharp.Compiler.ComponentTests/Signatures/NestedTypeTests.fs b/tests/FSharp.Compiler.ComponentTests/Signatures/NestedTypeTests.fs new file mode 100644 index 00000000000..9fb4ee4360c --- /dev/null +++ b/tests/FSharp.Compiler.ComponentTests/Signatures/NestedTypeTests.fs @@ -0,0 +1,99 @@ +module FSharp.Compiler.ComponentTests.Signatures.NestedTypeTests + +open Xunit +open FsUnit +open FSharp.Test +open FSharp.Test.Compiler +open FSharp.Compiler.ComponentTests.Signatures.TestHelpers + +[] +let ``Nested type with generics`` () = + let CSLib = + CSharp """ +namespace Lib +{ + public class Upper + { + public class Lower + { + public void Meh() + { + + } + } + } +} +""" + + FSharp + """ +module Sample + +open Lib + +let f (g: Upper.Lower) = g.Meh() +""" + |> withReferences [ CSLib ] + |> printSignatures + |> should equal + """ +module Sample + +val f: g: Lib.Upper.Lower -> unit""" + +[] +let ``Multiple generics in nested type`` () = + let CSLib = + CSharp """ +namespace Lib +{ + public class Root + { + public class Foo + { + public class Bar + { + public void Meh() + { + + } + } + } + } +} +""" + + FSharp + """ +module Sample + +open System +open Lib + +let f (g: Root.Foo.Bar) = g.Meh() +""" + |> withReferences [ CSLib ] + |> printSignatures + |> should equal + """ +module Sample + +val f: g: Lib.Root.Foo.Bar -> unit""" + +[] +let ``ImmutableArray<'T>.Builder roundtrip`` () = + let impl = + """ +module Library + +open System.Collections.Immutable + +type ImmutableArrayViaBuilder<'T>(builder: ImmutableArray<'T>.Builder) = class end +""" + + let signature = printSignatures (Fs impl) + + Fsi signature + |> withAdditionalSourceFile (FsSource impl) + |> compile + |> shouldSucceed diff --git a/tests/FSharp.Test.Utilities/Compiler.fs b/tests/FSharp.Test.Utilities/Compiler.fs index 59cb4faac1a..db50005068c 100644 --- a/tests/FSharp.Test.Utilities/Compiler.fs +++ b/tests/FSharp.Test.Utilities/Compiler.fs @@ -891,7 +891,29 @@ module rec Compiler = | FS fsSource -> let source = fsSource.Source.GetSourceText |> Option.defaultValue "" let fileName = fsSource.Source.ChangeExtension.GetSourceFileName - let options = fsSource.Options |> Array.ofList + + let references = + let disposals = ResizeArray() + let outputDirectory = + match fsSource.OutputDirectory with + | Some di -> di + | None -> DirectoryInfo(tryCreateTemporaryDirectory()) + let references = processReferences fsSource.References outputDirectory + if references.IsEmpty then + Array.empty + else + outputDirectory.Create() + disposals.Add({ new IDisposable with member _.Dispose() = outputDirectory.Delete(true) }) + // Note that only the references are relevant here + let compilation = Compilation.Compilation([], CompileOutput.Exe,Array.empty, TargetFramework.Current, references, None, None) + evaluateReferences outputDirectory disposals fsSource.IgnoreWarnings compilation + |> fst + + let options = + [| + yield! fsSource.Options |> Array.ofList + yield! references + |] CompilerAssert.TypeCheck(options, fileName, source) | _ -> failwith "Typecheck only supports F#" diff --git a/tests/service/ExprTests.fs b/tests/service/ExprTests.fs index b2679c8863c..8c8128eca18 100644 --- a/tests/service/ExprTests.fs +++ b/tests/service/ExprTests.fs @@ -661,7 +661,9 @@ let testMutableVar = mutableVar 1 let testMutableConst = mutableConst () """ - let createOptions() = createOptionsAux [fileSource1; fileSource2] [] + let createOptionsWithArgs args = createOptionsAux [ fileSource1; fileSource2 ] args + + let createOptions() = createOptionsWithArgs [] let operatorTests = """ module OperatorTests{0} @@ -732,7 +734,7 @@ let ignoreTestIfStackOverflowExpected () = /// This test is run in unison with its optimized counterpart below [] let ``Test Unoptimized Declarations Project1`` () = - let cleanup, options = Project1.createOptions() + let cleanup, options = Project1.createOptionsWithArgs [ "--langversion:preview" ] use _holder = cleanup let exprChecker = FSharpChecker.Create(keepAssemblyContents=true) let wholeProjectResults = exprChecker.ParseAndCheckProject(options) |> Async.RunImmediate @@ -796,7 +798,7 @@ let ``Test Unoptimized Declarations Project1`` () = "member .ctor(c,d) = (new Object(); ()) @ (105,5--105,20)"; "member Method(x) (a,b) = 1 @ (106,37--106,38)"; "member CurriedMethod(x) (a1,b1) (a2,b2) = 1 @ (107,63--107,64)"; - "let testFunctionThatCallsMultiArgMethods(unitVar0) = let m: M.MultiArgMethods = new MultiArgMethods(3,4) in Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),m.Method(7,8),fun tupledArg -> let arg00: Microsoft.FSharp.Core.int = tupledArg.Item0 in let arg01: Microsoft.FSharp.Core.int = tupledArg.Item1 in fun tupledArg -> let arg10: Microsoft.FSharp.Core.int = tupledArg.Item0 in let arg11: Microsoft.FSharp.Core.int = tupledArg.Item1 in m.CurriedMethod(arg00,arg01,arg10,arg11) (9,10) (11,12)) @ (110,8--110,9)"; + "let testFunctionThatCallsMultiArgMethods(unitVar0) = let m: M.MultiArgMethods = new MultiArgMethods(3,4) in Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),m.Method(7,8),fun tupledArg -> let a1: Microsoft.FSharp.Core.int = tupledArg.Item0 in let b1: Microsoft.FSharp.Core.int = tupledArg.Item1 in fun tupledArg -> let a2: Microsoft.FSharp.Core.int = tupledArg.Item0 in let b2: Microsoft.FSharp.Core.int = tupledArg.Item1 in m.CurriedMethod(a1,b1,a2,b2) (9,10) (11,12)) @ (110,8--110,9)"; "let testFunctionThatUsesUnitsOfMeasure(x) (y) = Operators.op_Addition,Microsoft.FSharp.Core.float<'u>,Microsoft.FSharp.Core.float<'u>> (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic,Microsoft.FSharp.Core.float<'u>,Microsoft.FSharp.Core.float<'u>> (arg0_0,arg1_0),x,y) @ (122,70--122,75)"; "let testFunctionThatUsesAddressesAndByrefs(x) = let mutable w: Microsoft.FSharp.Core.int = 4 in let y1: Microsoft.FSharp.Core.byref = x in let y2: Microsoft.FSharp.Core.byref = &w in let arr: Microsoft.FSharp.Core.int Microsoft.FSharp.Core.array = [|3; 4|] in let r: Microsoft.FSharp.Core.int Microsoft.FSharp.Core.ref = Operators.Ref (3) in let y3: Microsoft.FSharp.Core.byref = [I_ldelema (NormalAddress, false, ILArrayShape [(Some 0, None)], !0)](arr,0) in let y4: Microsoft.FSharp.Core.byref = &r.contents in let z: Microsoft.FSharp.Core.int = Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),x,y1),y2),y3) in (w <- 3; (x <- 4; (y2 <- 4; (y3 <- 5; Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),z,x),y1),y2),y3),y4),IntrinsicFunctions.GetArray (arr,0)),r.contents))))) @ (125,16--125,17)"; "let testFunctionThatUsesStructs1(dt) = dt.AddDays(3) @ (139,57--139,72)"; @@ -867,7 +869,7 @@ let ``Test Unoptimized Declarations Project1`` () = [] let ``Test Optimized Declarations Project1`` () = - let cleanup, options = Project1.createOptions() + let cleanup, options = Project1.createOptionsWithArgs [ "--langversion:preview" ] use _holder = cleanup let exprChecker = FSharpChecker.Create(keepAssemblyContents=true) let wholeProjectResults = exprChecker.ParseAndCheckProject(options) |> Async.RunImmediate @@ -931,7 +933,7 @@ let ``Test Optimized Declarations Project1`` () = "member .ctor(c,d) = (new Object(); ()) @ (105,5--105,20)"; "member Method(x) (a,b) = 1 @ (106,37--106,38)"; "member CurriedMethod(x) (a1,b1) (a2,b2) = 1 @ (107,63--107,64)"; - "let testFunctionThatCallsMultiArgMethods(unitVar0) = let m: M.MultiArgMethods = new MultiArgMethods(3,4) in Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),m.Method(7,8),let arg00: Microsoft.FSharp.Core.int = 9 in let arg01: Microsoft.FSharp.Core.int = 10 in let arg10: Microsoft.FSharp.Core.int = 11 in let arg11: Microsoft.FSharp.Core.int = 12 in m.CurriedMethod(arg00,arg01,arg10,arg11)) @ (110,8--110,9)"; + "let testFunctionThatCallsMultiArgMethods(unitVar0) = let m: M.MultiArgMethods = new MultiArgMethods(3,4) in Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),m.Method(7,8),let a1: Microsoft.FSharp.Core.int = 9 in let b1: Microsoft.FSharp.Core.int = 10 in let a2: Microsoft.FSharp.Core.int = 11 in let b2: Microsoft.FSharp.Core.int = 12 in m.CurriedMethod(a1,b1,a2,b2)) @ (110,8--110,9)"; "let testFunctionThatUsesUnitsOfMeasure(x) (y) = Operators.op_Addition,Microsoft.FSharp.Core.float<'u>,Microsoft.FSharp.Core.float<'u>> (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic,Microsoft.FSharp.Core.float<'u>,Microsoft.FSharp.Core.float<'u>> (arg0_0,arg1_0),x,y) @ (122,70--122,75)"; "let testFunctionThatUsesAddressesAndByrefs(x) = let mutable w: Microsoft.FSharp.Core.int = 4 in let y1: Microsoft.FSharp.Core.byref = x in let y2: Microsoft.FSharp.Core.byref = &w in let arr: Microsoft.FSharp.Core.int Microsoft.FSharp.Core.array = [|3; 4|] in let r: Microsoft.FSharp.Core.int Microsoft.FSharp.Core.ref = Operators.Ref (3) in let y3: Microsoft.FSharp.Core.byref = [I_ldelema (NormalAddress, false, ILArrayShape [(Some 0, None)], !0)](arr,0) in let y4: Microsoft.FSharp.Core.byref = &r.contents in let z: Microsoft.FSharp.Core.int = Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),x,y1),y2),y3) in (w <- 3; (x <- 4; (y2 <- 4; (y3 <- 5; Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),Operators.op_Addition (fun arg0_0 -> fun arg1_0 -> LanguagePrimitives.AdditionDynamic (arg0_0,arg1_0),z,x),y1),y2),y3),y4),IntrinsicFunctions.GetArray (arr,0)),r.contents))))) @ (125,16--125,17)"; "let testFunctionThatUsesStructs1(dt) = dt.AddDays(3) @ (139,57--139,72)"; diff --git a/vsintegration/src/FSharp.Editor/Hints/HintService.fs b/vsintegration/src/FSharp.Editor/Hints/HintService.fs index c257ffa0102..756ee0e4980 100644 --- a/vsintegration/src/FSharp.Editor/Hints/HintService.fs +++ b/vsintegration/src/FSharp.Editor/Hints/HintService.fs @@ -30,7 +30,7 @@ module HintService = |> Seq.collect (InlineParameterNameHints(parseResults).GetHintsForMemberOrFunctionOrValue sourceText symbol) | HintKind.ParameterNameHint, (:? FSharpUnionCase as symbol) -> symbolUses - |> Seq.collect (InlineParameterNameHints(parseResults).GetHintsForUnionCase symbol) + |> Seq.collect (InlineParameterNameHints(parseResults).GetHintsForUnionCase sourceText symbol) | _ -> [] hintKinds |> Set.toList |> List.map getHintsPerKind diff --git a/vsintegration/src/FSharp.Editor/Hints/InlineParameterNameHints.fs b/vsintegration/src/FSharp.Editor/Hints/InlineParameterNameHints.fs index f428a144cfb..867377cc335 100644 --- a/vsintegration/src/FSharp.Editor/Hints/InlineParameterNameHints.fs +++ b/vsintegration/src/FSharp.Editor/Hints/InlineParameterNameHints.fs @@ -147,7 +147,7 @@ type InlineParameterNameHints(parseResults: FSharpParseFileResults) = else [] - member _.GetHintsForUnionCase (symbol: FSharpUnionCase) (symbolUse: FSharpSymbolUse) = + member _.GetHintsForUnionCase (sourceText: SourceText) (symbol: FSharpUnionCase) (symbolUse: FSharpSymbolUse) = if isUnionCaseValidForHint symbol symbolUse then let fields = Seq.toList symbol.Fields @@ -155,13 +155,17 @@ type InlineParameterNameHints(parseResults: FSharpParseFileResults) = let ranges = parseResults.GetAllArgumentsForFunctionApplicationAtPosition symbolUse.Range.Start + let argumentNames = + match ranges with + | Some ranges -> (List.map (getSourceTextAtRange sourceText)) ranges + | None -> [] // When not all field values are provided (as the user is typing), don't show anything yet match ranges with | Some ranges when ranges.Length = fields.Length -> fields - |> List.zip ranges - |> List.where (snd >> fieldNameExists) - |> List.map getFieldHint + |> List.zip3 argumentNames ranges + |> List.where (fun (argumentName, _, parameter) -> fieldNameExists parameter && argumentName <> parameter.DisplayName) + |> List.map (fun (_, range, parameter) -> getFieldHint (range, parameter)) | _ -> [] else diff --git a/vsintegration/tests/FSharp.Editor.Tests/Hints/InlineParameterNameHintTests.fs b/vsintegration/tests/FSharp.Editor.Tests/Hints/InlineParameterNameHintTests.fs index 1607662a96c..c1cf532607a 100644 --- a/vsintegration/tests/FSharp.Editor.Tests/Hints/InlineParameterNameHintTests.fs +++ b/vsintegration/tests/FSharp.Editor.Tests/Hints/InlineParameterNameHintTests.fs @@ -347,6 +347,39 @@ let b = Rectangle (1, 2) Assert.Equal(expected, actual) + [] + let ``Hints are not shown for discriminated union case fields with the same names as arguements`` () = + let code = + """ +type Shape = + | Square of side: int + | Rectangle of width: int * height: int + +let width = 5 +let a = Square 1 +let b = Rectangle (width, 2) +""" + + let document = getFsDocument code + + let expected = + [ + { + Content = "side = " + Location = (6, 16) + Tooltip = "field side" + } + { + Content = "height = " + Location = (7, 27) + Tooltip = "field height" + } + ] + + let actual = getParameterNameHints document + + Assert.Equal(expected, actual) + [] let ``Hints for discriminated union case fields are not shown when names are generated`` () = let code = From 49561041f645eed38247d7dc8b51d55f71eaab99 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Tue, 6 Jun 2023 12:32:43 +0200 Subject: [PATCH 07/54] Update global.json --- global.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/global.json b/global.json index a85e2fe2933..22b4f0c70a5 100644 --- a/global.json +++ b/global.json @@ -12,7 +12,7 @@ "Microsoft.VisualStudio.Component.FSharp" ] }, - "xcopy-msbuild": "17.4.1" + "xcopy-msbuild": "17.6.0-2" }, "native-tools": { "perl": "5.32.1.1" From e70e9d64d4128a9995531f55359e57842e20cfb6 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 6 Jun 2023 11:04:54 +0000 Subject: [PATCH 08/54] Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20230605.3 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 8.0.0-alpha.1.23262.1 -> To Version 8.0.0-alpha.1.23305.3 Dependency coherency updates Microsoft.SourceLink.GitHub From Version 8.0.0-beta.23218.3 -> To Version 8.0.0-beta.23227.4 (parent: Microsoft.DotNet.Arcade.Sdk --- eng/Version.Details.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1e43d5e0fbd..2a4a6799843 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -6,9 +6,9 @@ 513000e77df5ec1f9b86397d8df6e3254703c636 - + https://github.com/dotnet/source-build-reference-packages - d76c30028584fb1d02d9b27dc48e65ad87f4ecfe + 658250387023abc09df27acf7d67ed1a07421dca @@ -39,9 +39,9 @@ 5dff25b814b90abb85c847ed274cf4afb2c1b276 - + https://github.com/dotnet/sourcelink - 47c52dd2ebf9edfd40abdcff999c13eb461f6ce2 + 11028a4507c6b8475744f235250dd402b371a162 From 0483154922626c5252d2cbffc8403c52a986f616 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Tue, 6 Jun 2023 13:29:54 +0200 Subject: [PATCH 09/54] fix test --- tests/service/ProjectAnalysisTests.fs | 1 + 1 file changed, 1 insertion(+) diff --git a/tests/service/ProjectAnalysisTests.fs b/tests/service/ProjectAnalysisTests.fs index 0ee58b1898f..c7da8ddd26d 100644 --- a/tests/service/ProjectAnalysisTests.fs +++ b/tests/service/ProjectAnalysisTests.fs @@ -2224,6 +2224,7 @@ let ``Test Project13 all symbols`` () = "type System.IParsable"; "type System.ISpanFormattable" "type System.ISpanParsable" + "type System.IUtf8SpanFormattable" #endif "type System.Runtime.Serialization.ISerializable" "type System.IComparable" From 0242e6439d4064edf6b7f4557896a693e84ad3aa Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Tue, 6 Jun 2023 14:54:14 +0200 Subject: [PATCH 10/54] Trimming size adjustments --- tests/AheadOfTime/Trimming/check.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/AheadOfTime/Trimming/check.ps1 b/tests/AheadOfTime/Trimming/check.ps1 index 4ba9c3c6f09..db57fbd7cb3 100644 --- a/tests/AheadOfTime/Trimming/check.ps1 +++ b/tests/AheadOfTime/Trimming/check.ps1 @@ -47,4 +47,4 @@ CheckTrim -root "SelfContained_Trimming_Test" -tfm "net472" -outputfile "FSharp. CheckTrim -root "StaticLinkedFSharpCore_Trimming_Test" -tfm "net472" -outputfile "StaticLinkedFSharpCore_Trimming_Test.exe" -expected_len -1 # Check net8.0 trimmed assemblies -CheckTrim -root "StaticLinkedFSharpCore_Trimming_Test" -tfm "net8.0" -outputfile "StaticLinkedFSharpCore_Trimming_Test.dll" -expected_len 8820736 +CheckTrim -root "StaticLinkedFSharpCore_Trimming_Test" -tfm "net8.0" -outputfile "StaticLinkedFSharpCore_Trimming_Test.dll" -expected_len 8821248 From 66334f12b0a4952aa0745f2f439d4cd728d2bf27 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Wed, 7 Jun 2023 13:42:16 +0200 Subject: [PATCH 11/54] Update azure-pipelines.yml --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index ed921cab8ec..54a61511bfa 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -107,7 +107,7 @@ stages: - job: Full_Signed pool: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022.amd64 + demands: ImageOverride -equals windows.vs2022preview.amd64.open timeoutInMinutes: 300 variables: - group: DotNet-Blob-Feed From f8b9333279689716d4a1db4f222f4183dbdf17b3 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Wed, 7 Jun 2023 13:45:47 +0200 Subject: [PATCH 12/54] Update azure-pipelines.yml --- azure-pipelines.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 54a61511bfa..c443be4ca17 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -107,7 +107,7 @@ stages: - job: Full_Signed pool: name: $(DncEngInternalBuildPool) - demands: ImageOverride -equals windows.vs2022preview.amd64.open + demands: ImageOverride -equals windows.vs2022preview.amd64 timeoutInMinutes: 300 variables: - group: DotNet-Blob-Feed From 5bcc0d599e396d110854d473dcab69a0a2c90179 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 7 Jun 2023 13:42:28 +0000 Subject: [PATCH 13/54] Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20230606.1 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 8.0.0-alpha.1.23262.1 -> To Version 8.0.0-alpha.1.23306.1 --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index c14e61363b4..a3a9d08a2a3 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -6,9 +6,9 @@ 8fd12314c3e648c03a4189ba0bd1c3b09f5d6a01 - + https://github.com/dotnet/source-build-reference-packages - 658250387023abc09df27acf7d67ed1a07421dca + 9eb08132867fce9671597e3ca6f89a345547ee4f From 7f44f40d913cd5dd2c2d8a358cbd4020bbd861ce Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 8 Jun 2023 14:05:17 +0000 Subject: [PATCH 14/54] Update dependencies from https://github.com/dotnet/arcade build 20230607.2 Microsoft.DotNet.Arcade.Sdk From Version 8.0.0-beta.23302.3 -> To Version 8.0.0-beta.23307.2 Dependency coherency updates Microsoft.SourceBuild.Intermediate.xliff-tasks From Version 1.0.0-beta.23279.1 -> To Version 1.0.0-beta.23305.1 (parent: Microsoft.DotNet.Arcade.Sdk --- eng/Version.Details.xml | 8 ++++---- global.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a3a9d08a2a3..70d2342c697 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,9 +1,9 @@ - + https://github.com/dotnet/xliff-tasks - 8fd12314c3e648c03a4189ba0bd1c3b09f5d6a01 + d033e96327903618482de22f76c971c7fe91e8f4 @@ -34,9 +34,9 @@ - + https://github.com/dotnet/arcade - 234e0726c7384ee84bf08550f2d16a1ff2d5c543 + a178d756de78f9fd55339cb92665e791a3ba6535 diff --git a/global.json b/global.json index 22b4f0c70a5..ff0de995e72 100644 --- a/global.json +++ b/global.json @@ -18,7 +18,7 @@ "perl": "5.32.1.1" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23302.3", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23307.2", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } } From 0fb2d55d3cfcba03db8b004d90dfb011670d73da Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 9 Jun 2023 13:51:04 +0000 Subject: [PATCH 15/54] Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20230609.1 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 8.0.0-alpha.1.23306.1 -> To Version 8.0.0-alpha.1.23309.1 --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 70d2342c697..570fb09c62c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -6,9 +6,9 @@ d033e96327903618482de22f76c971c7fe91e8f4 - + https://github.com/dotnet/source-build-reference-packages - 9eb08132867fce9671597e3ca6f89a345547ee4f + b0f656e394f8e98f48f11612ac997750bb85ff6c From 2c9fb189ea3e06b0bf55646a88c777883ad0449a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 9 Jun 2023 14:03:54 +0000 Subject: [PATCH 16/54] Update dependencies from https://github.com/dotnet/arcade build 20230608.2 Microsoft.DotNet.Arcade.Sdk From Version 8.0.0-beta.23307.2 -> To Version 8.0.0-beta.23308.2 --- eng/Version.Details.xml | 4 ++-- global.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 70d2342c697..a601efea15e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -34,9 +34,9 @@ - + https://github.com/dotnet/arcade - a178d756de78f9fd55339cb92665e791a3ba6535 + 1205248d5cc014b68c2fb8cfbf091a77aa433453 diff --git a/global.json b/global.json index ff0de995e72..2f40cfaf7ed 100644 --- a/global.json +++ b/global.json @@ -18,7 +18,7 @@ "perl": "5.32.1.1" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23307.2", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23308.2", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } } From 6b5ec8998348b14694c40a6f8e9d234aa2c74293 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 10 Jun 2023 13:34:46 +0000 Subject: [PATCH 17/54] Update dependencies from https://github.com/dotnet/arcade build 20230609.8 Microsoft.DotNet.Arcade.Sdk From Version 8.0.0-beta.23307.2 -> To Version 8.0.0-beta.23309.8 --- eng/Version.Details.xml | 4 ++-- global.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a601efea15e..e5f88fbd47a 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -34,9 +34,9 @@ - + https://github.com/dotnet/arcade - 1205248d5cc014b68c2fb8cfbf091a77aa433453 + 9994c5ed43856c35591d94ead68ef501a020eb2e diff --git a/global.json b/global.json index 2f40cfaf7ed..ebe7b5f658d 100644 --- a/global.json +++ b/global.json @@ -18,7 +18,7 @@ "perl": "5.32.1.1" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23308.2", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23309.8", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } } From 5a56f0db8a67540fdf5e4b623a4e01af2a469b19 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 13 Jun 2023 13:17:54 +0000 Subject: [PATCH 18/54] Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20230612.2 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 8.0.0-alpha.1.23309.1 -> To Version 8.0.0-alpha.1.23312.2 --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 1e88bb0ca1b..f783fc3aeed 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -6,9 +6,9 @@ d033e96327903618482de22f76c971c7fe91e8f4 - + https://github.com/dotnet/source-build-reference-packages - b0f656e394f8e98f48f11612ac997750bb85ff6c + ceb1133c46abe15ee48ea799950e7a6a74417b74 From 3fa34c2ff803e558648eb6f70b014de7f1f5b914 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 14 Jun 2023 13:15:48 +0000 Subject: [PATCH 19/54] Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20230614.1 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 8.0.0-alpha.1.23309.1 -> To Version 8.0.0-alpha.1.23314.1 --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index f783fc3aeed..a639a9aa7f8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -6,9 +6,9 @@ d033e96327903618482de22f76c971c7fe91e8f4 - + https://github.com/dotnet/source-build-reference-packages - ceb1133c46abe15ee48ea799950e7a6a74417b74 + f8ebadcc83f7fc8cfd5147078c87d6e583cb32f1 From 6571f881d08ebc8cbdd4f207706eb6aaa248ee88 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 16 Jun 2023 13:29:34 +0000 Subject: [PATCH 20/54] Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20230615.1 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 8.0.0-alpha.1.23314.1 -> To Version 8.0.0-alpha.1.23315.1 --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index a639a9aa7f8..8b68048068e 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -6,9 +6,9 @@ d033e96327903618482de22f76c971c7fe91e8f4 - + https://github.com/dotnet/source-build-reference-packages - f8ebadcc83f7fc8cfd5147078c87d6e583cb32f1 + b34c6434a7b422a79e104ef7f24cee0d6ddba3c5 From 59417f4dcb904c0357f365192ead7ea994854133 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Fri, 16 Jun 2023 18:32:18 +0200 Subject: [PATCH 21/54] Fix plain dotnet build warnings --- src/fsc/fscProject/fsc.fsproj | 4 ++-- src/fsi/fsiProject/fsi.fsproj | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/fsc/fscProject/fsc.fsproj b/src/fsc/fscProject/fsc.fsproj index ba282f060c4..64c4651a7f4 100644 --- a/src/fsc/fscProject/fsc.fsproj +++ b/src/fsc/fscProject/fsc.fsproj @@ -4,14 +4,14 @@ net472;net8.0 - net8.0 + net8.0 x86 Debug;Release;Proto;ReleaseCompressed net472 - net8.0 + net8.0 x86 diff --git a/src/fsi/fsiProject/fsi.fsproj b/src/fsi/fsiProject/fsi.fsproj index 06b05a2484e..dd17f8bd53d 100644 --- a/src/fsi/fsiProject/fsi.fsproj +++ b/src/fsi/fsiProject/fsi.fsproj @@ -4,14 +4,14 @@ net472;net8.0 - net8.0 + net8.0 x86 Debug;Release;Proto;ReleaseCompressed net472 - net8.0 + net8.0 x86 From e9eb6894e142eccf77cc409876ebaa70334545e0 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 17 Jun 2023 13:47:42 +0000 Subject: [PATCH 22/54] Update dependencies from https://github.com/dotnet/source-build-reference-packages build 20230616.2 Microsoft.SourceBuild.Intermediate.source-build-reference-packages From Version 8.0.0-alpha.1.23315.1 -> To Version 8.0.0-alpha.1.23316.2 --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8b68048068e..8ee34b26ed4 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -6,9 +6,9 @@ d033e96327903618482de22f76c971c7fe91e8f4 - + https://github.com/dotnet/source-build-reference-packages - b34c6434a7b422a79e104ef7f24cee0d6ddba3c5 + 3e92e7cead1e08476973f637007bb22cde7843ca From 30511c714203943fe423ca78084df0f34ff88cb1 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 20 Jun 2023 13:45:10 +0000 Subject: [PATCH 23/54] Update dependencies from https://github.com/dotnet/arcade build 20230619.3 Microsoft.DotNet.Arcade.Sdk From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23319.3 Dependency coherency updates Microsoft.SourceBuild.Intermediate.xliff-tasks,Microsoft.SourceLink.GitHub From Version 1.0.0-beta.23305.1 -> To Version 1.0.0-beta.23312.2 (parent: Microsoft.DotNet.Arcade.Sdk --- eng/Version.Details.xml | 12 ++++++------ eng/common/dotnet-install.sh | 4 ++++ eng/common/tools.ps1 | 2 +- global.json | 6 +++--- 4 files changed, 14 insertions(+), 10 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8ee34b26ed4..0d024b26253 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,9 +1,9 @@ - + https://github.com/dotnet/xliff-tasks - d033e96327903618482de22f76c971c7fe91e8f4 + 4234ffac87e305da80597cb46dc0d4a87fc4f7c2 @@ -34,14 +34,14 @@ - + https://github.com/dotnet/arcade - 9994c5ed43856c35591d94ead68ef501a020eb2e + a7352a700a522e0d1c3e65ec4cbe5df238d60f92 - + https://github.com/dotnet/sourcelink - 54eb3b811c57f5e94617d31a102fc9cb664ccdd5 + 4d2c8bf58e8cb7900ec2d9077c155572e2d3cd88 diff --git a/eng/common/dotnet-install.sh b/eng/common/dotnet-install.sh index abd045a3247..7e69e3a9e24 100755 --- a/eng/common/dotnet-install.sh +++ b/eng/common/dotnet-install.sh @@ -54,6 +54,10 @@ cpuname=$(uname -m) case $cpuname in arm64|aarch64) buildarch=arm64 + if [ "$(getconf LONG_BIT)" -lt 64 ]; then + # This is 32-bit OS running on 64-bit CPU (for example Raspberry Pi OS) + buildarch=arm + fi ;; loongarch64) buildarch=loongarch64 diff --git a/eng/common/tools.ps1 b/eng/common/tools.ps1 index ffe0b4e2dfc..c9eced9f7df 100644 --- a/eng/common/tools.ps1 +++ b/eng/common/tools.ps1 @@ -379,7 +379,7 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements = } # Minimum VS version to require. - $vsMinVersionReqdStr = '16.8' + $vsMinVersionReqdStr = '17.6' $vsMinVersionReqd = [Version]::new($vsMinVersionReqdStr) # If the version of msbuild is going to be xcopied, diff --git a/global.json b/global.json index ebe7b5f658d..4cc3d8346b7 100644 --- a/global.json +++ b/global.json @@ -1,11 +1,11 @@ { "sdk": { - "version": "8.0.100-preview.4.23260.5", + "version": "8.0.100-preview.5.23303.2", "allowPrerelease": true, "rollForward": "latestPatch" }, "tools": { - "dotnet": "8.0.100-preview.4.23260.5", + "dotnet": "8.0.100-preview.5.23303.2", "vs": { "version": "17.5", "components": [ @@ -18,7 +18,7 @@ "perl": "5.32.1.1" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23309.8", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23319.3", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } } From 13a43114f5bffe964e8dc5f156818ed4dabcaa14 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Tue, 20 Jun 2023 17:48:39 +0200 Subject: [PATCH 24/54] fix net8p5 api --- global.json | 2 +- tests/scripts/scriptlib.fsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/global.json b/global.json index 4cc3d8346b7..91fa5c905a0 100644 --- a/global.json +++ b/global.json @@ -7,7 +7,7 @@ "tools": { "dotnet": "8.0.100-preview.5.23303.2", "vs": { - "version": "17.5", + "version": "17.6", "components": [ "Microsoft.VisualStudio.Component.FSharp" ] diff --git a/tests/scripts/scriptlib.fsx b/tests/scripts/scriptlib.fsx index 071196cf876..b074b78ba25 100644 --- a/tests/scripts/scriptlib.fsx +++ b/tests/scripts/scriptlib.fsx @@ -99,7 +99,7 @@ module Scripting = | "" -> exe | _ -> Path.Combine(baseDir,exe) |> Path.GetFullPath - let exec cmdArgs (workDir: FilePath) envs (path: FilePath) arguments = + let exec cmdArgs (workDir: FilePath) envs (path: FilePath) (arguments: string) = let exePath = path |> processExePath workDir let processInfo = new ProcessStartInfo(exePath, arguments) From 3085440f1df9ab86673523d40b3fbf28fbbd9e64 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Tue, 20 Jun 2023 18:24:27 +0200 Subject: [PATCH 25/54] Fix trimming test for p5 --- tests/AheadOfTime/Trimming/check.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/AheadOfTime/Trimming/check.ps1 b/tests/AheadOfTime/Trimming/check.ps1 index db57fbd7cb3..ef8f6be89e4 100644 --- a/tests/AheadOfTime/Trimming/check.ps1 +++ b/tests/AheadOfTime/Trimming/check.ps1 @@ -47,4 +47,4 @@ CheckTrim -root "SelfContained_Trimming_Test" -tfm "net472" -outputfile "FSharp. CheckTrim -root "StaticLinkedFSharpCore_Trimming_Test" -tfm "net472" -outputfile "StaticLinkedFSharpCore_Trimming_Test.exe" -expected_len -1 # Check net8.0 trimmed assemblies -CheckTrim -root "StaticLinkedFSharpCore_Trimming_Test" -tfm "net8.0" -outputfile "StaticLinkedFSharpCore_Trimming_Test.dll" -expected_len 8821248 +CheckTrim -root "StaticLinkedFSharpCore_Trimming_Test" -tfm "net8.0" -outputfile "StaticLinkedFSharpCore_Trimming_Test.dll" -expected_len 8821760 From 24890f9d011e1f1c3bc44e48685b80455c8e988a Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 21 Jun 2023 13:52:20 +0000 Subject: [PATCH 26/54] Update dependencies from https://github.com/dotnet/arcade build 20230620.3 Microsoft.DotNet.Arcade.Sdk From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23320.3 Dependency coherency updates Microsoft.SourceBuild.Intermediate.xliff-tasks,Microsoft.SourceLink.GitHub From Version 1.0.0-beta.23305.1 -> To Version 1.0.0-beta.23312.2 (parent: Microsoft.DotNet.Arcade.Sdk --- eng/Version.Details.xml | 4 ++-- global.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 0d024b26253..df7756e56b8 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -34,9 +34,9 @@ - + https://github.com/dotnet/arcade - a7352a700a522e0d1c3e65ec4cbe5df238d60f92 + 06d73ccc1f421af06c2794741a9913f474f66b3d diff --git a/global.json b/global.json index 91fa5c905a0..69c511874c8 100644 --- a/global.json +++ b/global.json @@ -18,7 +18,7 @@ "perl": "5.32.1.1" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23319.3", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23320.3", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } } From 15476434de4de96997ddbc9b98eb7a7be793e498 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Thu, 22 Jun 2023 12:10:52 +0200 Subject: [PATCH 27/54] Update Version.Details.xml --- eng/Version.Details.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index df7756e56b8..fd6b6a3f893 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -6,9 +6,9 @@ 4234ffac87e305da80597cb46dc0d4a87fc4f7c2 - + https://github.com/dotnet/source-build-reference-packages - 3e92e7cead1e08476973f637007bb22cde7843ca + 4163a212b06740e791c3dfe7ea1258565229af07 From d0de827f3366632b63bc0b8e0da2bd020f666455 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 22 Jun 2023 12:53:10 +0000 Subject: [PATCH 28/54] Update dependencies from https://github.com/dotnet/arcade build 20230620.3 Microsoft.DotNet.Arcade.Sdk From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23320.3 From 03c95cea4f3b7ad57674156cb62c409c6fe31e21 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Fri, 23 Jun 2023 13:36:34 +0200 Subject: [PATCH 29/54] Improve error recovery of union case definitions (#15468) (#15474) * Improve error recovery of union case definitions --- src/Compiler/FSComp.txt | 3 +- src/Compiler/SyntaxTree/ParseHelpers.fs | 9 ++ src/Compiler/SyntaxTree/ParseHelpers.fsi | 9 ++ src/Compiler/pars.fsy | 61 +++---------- src/Compiler/xlf/FSComp.txt.cs.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.de.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.es.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.fr.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.it.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.ja.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.ko.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.pl.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.ru.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.tr.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 5 ++ src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 5 ++ .../UnionCase/Missing keyword of.fs | 11 +++ .../UnionCase/Missing keyword of.fs.bsl | 86 +++++++++++++++++++ .../UnionCase/Missing name 05.fs.bsl | 2 +- .../UnionCase/Missing name 06.fs.bsl | 2 +- 21 files changed, 198 insertions(+), 50 deletions(-) create mode 100644 tests/service/data/SyntaxTree/UnionCase/Missing keyword of.fs create mode 100644 tests/service/data/SyntaxTree/UnionCase/Missing keyword of.fs.bsl diff --git a/src/Compiler/FSComp.txt b/src/Compiler/FSComp.txt index 6bcea07ddc1..dc28331da25 100644 --- a/src/Compiler/FSComp.txt +++ b/src/Compiler/FSComp.txt @@ -1697,4 +1697,5 @@ featureEscapeBracesInFormattableString,"Escapes curly braces before calling Form 3565,parsExpectingType,"Expecting type" featureInformationalObjInferenceDiagnostic,"Diagnostic 3559 (warn when obj inferred) at informational level, off by default" 3566,tcMultipleRecdTypeChoice,"Multiple type matches were found:\n%s\nThe type '%s' was used. Due to the overlapping field names\n%s\nconsider using type annotations or change the order of open statements." -3567,parsMissingMemberBody,"Expecting member body" \ No newline at end of file +3567,parsMissingMemberBody,"Expecting member body" +3568,parsMissingKeyword,"Missing keyword '%s'" \ No newline at end of file diff --git a/src/Compiler/SyntaxTree/ParseHelpers.fs b/src/Compiler/SyntaxTree/ParseHelpers.fs index 5821534137a..80929510001 100644 --- a/src/Compiler/SyntaxTree/ParseHelpers.fs +++ b/src/Compiler/SyntaxTree/ParseHelpers.fs @@ -1090,3 +1090,12 @@ let appendValToLeadingKeyword mVal leadingKeyword = | SynLeadingKeyword.Override mOverride -> SynLeadingKeyword.OverrideVal(mOverride, mVal) | SynLeadingKeyword.Default (mDefault) -> SynLeadingKeyword.DefaultVal(mDefault, mVal) | _ -> leadingKeyword + +let mkSynUnionCase attributes (access: SynAccess option) id kind mDecl (xmlDoc, mBar) = + match access with + | Some access -> errorR (Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations (), access.Range)) + | _ -> () + + let trivia: SynUnionCaseTrivia = { BarRange = Some mBar } + let mDecl = unionRangeWithXmlDoc xmlDoc mDecl + SynUnionCase(attributes, id, kind, xmlDoc, None, mDecl, trivia) diff --git a/src/Compiler/SyntaxTree/ParseHelpers.fsi b/src/Compiler/SyntaxTree/ParseHelpers.fsi index 8d158862f4f..326a806e131 100644 --- a/src/Compiler/SyntaxTree/ParseHelpers.fsi +++ b/src/Compiler/SyntaxTree/ParseHelpers.fsi @@ -238,3 +238,12 @@ val checkForMultipleAugmentations: m: range -> a1: 'a list -> a2: 'a list -> 'a val rangeOfLongIdent: lid: LongIdent -> range val appendValToLeadingKeyword: mVal: range -> leadingKeyword: SynLeadingKeyword -> SynLeadingKeyword + +val mkSynUnionCase: + attributes: SynAttributes -> + access: SynAccess option -> + id: SynIdent -> + kind: SynUnionCaseKind -> + mDecl: range -> + (PreXmlDoc * range) -> + SynUnionCase diff --git a/src/Compiler/pars.fsy b/src/Compiler/pars.fsy index da62e142c25..104e89ee693 100644 --- a/src/Compiler/pars.fsy +++ b/src/Compiler/pars.fsy @@ -2485,69 +2485,36 @@ attrUnionCaseDecls: /* The core of a union case definition */ attrUnionCaseDecl: | opt_attributes opt_access unionCaseName - { if Option.isSome $2 then errorR(Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations(), rhs parseState 2)) - let mDecl = rhs parseState 3 - (fun (xmlDoc, mBar) -> - let trivia: SynUnionCaseTrivia = { BarRange = Some mBar } - let mDecl = unionRangeWithXmlDoc xmlDoc mDecl - Choice2Of2 (SynUnionCase ($1, $3, SynUnionCaseKind.Fields [], xmlDoc, None, mDecl, trivia))) } + { mkSynUnionCase $1 $2 $3 (SynUnionCaseKind.Fields []) (rhs2 parseState 1 3) >> Choice2Of2 } | opt_attributes opt_access recover - { if Option.isSome $2 then errorR(Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations(), rhs parseState 2)) - (fun (xmlDoc, mBar) -> - let id = SynIdent(mkSynId mBar.EndRange "", None) - let trivia: SynUnionCaseTrivia = { BarRange = Some mBar } - let mDecl = unionRangeWithXmlDoc xmlDoc mBar - Choice2Of2 (SynUnionCase ($1, id, SynUnionCaseKind.Fields [], xmlDoc, None, mDecl, trivia))) } + { fun (xmlDoc, mBar) -> mkSynUnionCase $1 $2 (SynIdent(mkSynId mBar.EndRange "", None)) (SynUnionCaseKind.Fields []) mBar (xmlDoc, mBar) |> Choice2Of2 } | opt_attributes opt_access unionCaseName OF unionCaseRepr - { if Option.isSome $2 then errorR(Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations(), rhs parseState 2)) - let mDecl = rhs2 parseState 1 5 - (fun (xmlDoc, mBar) -> - let trivia: SynUnionCaseTrivia = { BarRange = Some mBar } - let mDecl = unionRangeWithXmlDoc xmlDoc mDecl - Choice2Of2 (SynUnionCase ($1, $3, SynUnionCaseKind.Fields $5, xmlDoc, None, mDecl, trivia))) } + { mkSynUnionCase $1 $2 $3 (SynUnionCaseKind.Fields $5) (rhs2 parseState 1 5) >> Choice2Of2 } + + | opt_attributes opt_access unionCaseName unionCaseRepr + { errorR (Error(FSComp.SR.parsMissingKeyword("of"), rhs2 parseState 3 4)) + mkSynUnionCase $1 $2 $3 (SynUnionCaseKind.Fields $4) (rhs2 parseState 1 4) >> Choice2Of2 } | opt_attributes opt_access OF unionCaseRepr - { if Option.isSome $2 then errorR(Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations(), rhs parseState 2)) - let mOf = rhs parseState 3 + { let mOf = rhs parseState 3 let mId = mOf.StartRange errorR (Error(FSComp.SR.parsMissingUnionCaseName(), mOf)) - let mDecl = rhs2 parseState 1 4 - (fun (xmlDoc, mBar) -> - let id = SynIdent(mkSynId mId "", None) - let trivia: SynUnionCaseTrivia = { BarRange = Some mBar } - let mDecl = unionRangeWithXmlDoc xmlDoc mDecl - Choice2Of2(SynUnionCase($1, id, SynUnionCaseKind.Fields $4, xmlDoc, None, mDecl, trivia))) } + mkSynUnionCase $1 $2 (SynIdent(mkSynId mId "", None)) (SynUnionCaseKind.Fields $4) (rhs2 parseState 1 4) >> Choice2Of2 } | opt_attributes opt_access OF recover - { if Option.isSome $2 then errorR(Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations(), rhs parseState 2)) - let mOf = rhs parseState 3 + { let mOf = rhs parseState 3 let mId = mOf.StartRange errorR (Error(FSComp.SR.parsMissingUnionCaseName(), mOf)) - let mDecl = rhs2 parseState 1 3 - (fun (xmlDoc, mBar) -> - let id = SynIdent(mkSynId mId "", None) - let trivia: SynUnionCaseTrivia = { BarRange = Some mBar } - let mDecl = unionRangeWithXmlDoc xmlDoc mDecl - Choice2Of2(SynUnionCase($1, id, SynUnionCaseKind.Fields [], xmlDoc, None, mDecl, trivia))) } + mkSynUnionCase $1 $2 (SynIdent(mkSynId mId "", None)) (SynUnionCaseKind.Fields []) (rhs2 parseState 1 3) >> Choice2Of2 } | opt_attributes opt_access unionCaseName OF recover - { if Option.isSome $2 then errorR(Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations(), rhs parseState 2)) - let mDecl = rhs2 parseState 1 4 - (fun (xmlDoc, mBar) -> - let trivia: SynUnionCaseTrivia = { BarRange = Some mBar } - let mDecl = unionRangeWithXmlDoc xmlDoc mDecl - Choice2Of2 (SynUnionCase ($1, $3, SynUnionCaseKind.Fields [], xmlDoc, None, mDecl, trivia))) } + { mkSynUnionCase $1 $2 $3 (SynUnionCaseKind.Fields []) (rhs2 parseState 1 4) >> Choice2Of2 } | opt_attributes opt_access unionCaseName COLON topType - { if Option.isSome $2 then errorR(Error(FSComp.SR.parsUnionCasesCannotHaveVisibilityDeclarations(), rhs parseState 2)) - if parseState.LexBuffer.ReportLibraryOnlyFeatures then libraryOnlyWarning(lhs parseState) - let mDecl = rhs2 parseState 1 5 - (fun (xmlDoc, mBar) -> - let trivia: SynUnionCaseTrivia = { BarRange = Some mBar } - let mDecl = unionRangeWithXmlDoc xmlDoc mDecl - Choice2Of2 (SynUnionCase ($1, $3, SynUnionCaseKind.FullType $5, xmlDoc, None, mDecl, trivia))) } + { if parseState.LexBuffer.ReportLibraryOnlyFeatures then libraryOnlyWarning(lhs parseState) + mkSynUnionCase $1 $2 $3 (SynUnionCaseKind.FullType $5) (rhs2 parseState 1 5) >> Choice2Of2 } | opt_attributes opt_access unionCaseName EQUALS atomicExpr { if Option.isSome $2 then errorR(Error(FSComp.SR.parsEnumFieldsCannotHaveVisibilityDeclarations(), rhs parseState 2)) diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index 0f193395113..a265ab0ca83 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -822,6 +822,11 @@ Neúplný výraz operátoru (například^b) nebo volání kvalifikovaného typu (příklad: ^T.Name) + + Missing keyword '{0}' + Missing keyword '{0}' + + Expecting member body Expecting member body diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index ea4855ac074..316b3ebc528 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -822,6 +822,11 @@ Unvollständiger Operatorausdruck (Beispiel: a^b) oder qualifizierter Typaufruf (Beispiel: ^T.Name) + + Missing keyword '{0}' + Missing keyword '{0}' + + Expecting member body Expecting member body diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index 5c35f12bd36..8f943c16b9c 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -822,6 +822,11 @@ Expresión de operador incompleta (ejemplo, a^b) o invocación de tipo calificada (ejemplo: ^T.Name) + + Missing keyword '{0}' + Missing keyword '{0}' + + Expecting member body Expecting member body diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index 68ea4e0a5f9..3f2f37284ea 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -822,6 +822,11 @@ Expression d’opérateur incomplète (exemple a^b) ou appel de type qualifié (exemple : ^T.Name) + + Missing keyword '{0}' + Missing keyword '{0}' + + Expecting member body Expecting member body diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index 41125e76442..dfa6b93cebe 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -822,6 +822,11 @@ Espressione operatore incompleta (ad esempio a^b) o chiamata di tipo qualificato (ad esempio: ^T.Name) + + Missing keyword '{0}' + Missing keyword '{0}' + + Expecting member body Expecting member body diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 3a04711e3d8..f2dbd41c37d 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -822,6 +822,11 @@ 不完全な演算子式 (例 a^b) または修飾型の呼び出し (例: ^T.Name) + + Missing keyword '{0}' + Missing keyword '{0}' + + Expecting member body Expecting member body diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index 9b1aef419fd..343da8aa6c6 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -822,6 +822,11 @@ 불완전한 연산자 식(예: a^b) 또는 정규화된 형식 호출(예: ^T.Name) + + Missing keyword '{0}' + Missing keyword '{0}' + + Expecting member body Expecting member body diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index ec1a302e956..f9718508364 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -822,6 +822,11 @@ Niekompletne wyrażenie operatora (na przykład a^b) lub wywołanie typu kwalifikowanego (przykład: ^T.Name) + + Missing keyword '{0}' + Missing keyword '{0}' + + Expecting member body Expecting member body diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index c875dabd6a2..ef0bb265690 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -822,6 +822,11 @@ Expressão de operador incompleta (exemplo a^b) ou invocação de tipo qualificado (exemplo: ^T.Name) + + Missing keyword '{0}' + Missing keyword '{0}' + + Expecting member body Expecting member body diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index b7ae9790eb0..bd87c11346d 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -822,6 +822,11 @@ Неполное выражение оператора (например, a^b) или вызов квалифицированного типа (например, ^T.Name) + + Missing keyword '{0}' + Missing keyword '{0}' + + Expecting member body Expecting member body diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index d3609d35fdb..de53d2b32be 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -822,6 +822,11 @@ Eksik işleç ifadesi (örnek a^b) veya tam tür çağrısı (örnek: ^T.Name) + + Missing keyword '{0}' + Missing keyword '{0}' + + Expecting member body Expecting member body diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index 9d700a9f7c9..7ffc6c7c4a2 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -822,6 +822,11 @@ 运算符表达式不完整(示例: a^b)或限定类型调用(示例: ^T.Name) + + Missing keyword '{0}' + Missing keyword '{0}' + + Expecting member body Expecting member body diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 08dce83131f..036b4f42631 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -822,6 +822,11 @@ 不完整的運算子運算式 (範例 a^b) 或限定類型調用 (範例: ^T.Name) + + Missing keyword '{0}' + Missing keyword '{0}' + + Expecting member body Expecting member body diff --git a/tests/service/data/SyntaxTree/UnionCase/Missing keyword of.fs b/tests/service/data/SyntaxTree/UnionCase/Missing keyword of.fs new file mode 100644 index 00000000000..e44e99bbcbb --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/Missing keyword of.fs @@ -0,0 +1,11 @@ +module Module + +let a = () + +type U = + | Case1 + | Case2 string + | Case3 of int + | Case4 4 + +let b = () diff --git a/tests/service/data/SyntaxTree/UnionCase/Missing keyword of.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/Missing keyword of.fs.bsl new file mode 100644 index 00000000000..61ef3fc7998 --- /dev/null +++ b/tests/service/data/SyntaxTree/UnionCase/Missing keyword of.fs.bsl @@ -0,0 +1,86 @@ +ImplFile + (ParsedImplFileInput + ("/root/UnionCase/Missing keyword of.fs", false, QualifiedNameOfFile Module, + [], [], + [SynModuleOrNamespace + ([Module], false, NamedModule, + [Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((3,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named (SynIdent (a, None), false, None, (3,4--3,5)), None, + Const (Unit, (3,8--3,10)), (3,4--3,5), Yes (3,0--3,10), + { LeadingKeyword = Let (3,0--3,3) + InlineKeyword = None + EqualsRange = Some (3,6--3,7) })], (3,0--3,10)); + Types + ([SynTypeDefn + (SynComponentInfo + ([], None, [], [U], + PreXmlDoc ((5,0), FSharp.Compiler.Xml.XmlDocCollector), + false, None, (5,5--5,6)), + Simple + (Union + (None, + [SynUnionCase + ([], SynIdent (Case1, None), Fields [], + PreXmlDoc ((6,4), FSharp.Compiler.Xml.XmlDocCollector), + None, (6,6--6,11), { BarRange = Some (6,4--6,5) }); + SynUnionCase + ([], SynIdent (Case2, None), + Fields + [SynField + ([], false, None, + LongIdent + (SynLongIdent ([string], [], [None])), false, + PreXmlDoc ((7,12), FSharp.Compiler.Xml.XmlDocCollector), + None, (7,12--7,18), { LeadingKeyword = None })], + PreXmlDoc ((7,4), FSharp.Compiler.Xml.XmlDocCollector), + None, (7,6--7,18), { BarRange = Some (7,4--7,5) }); + SynUnionCase + ([], SynIdent (Case3, None), + Fields + [SynField + ([], false, None, + LongIdent (SynLongIdent ([int], [], [None])), + false, + PreXmlDoc ((8,15), FSharp.Compiler.Xml.XmlDocCollector), + None, (8,15--8,18), { LeadingKeyword = None })], + PreXmlDoc ((8,4), FSharp.Compiler.Xml.XmlDocCollector), + None, (8,6--8,18), { BarRange = Some (8,4--8,5) }); + SynUnionCase + ([], SynIdent (Case4, None), + Fields + [SynField + ([], false, None, + StaticConstant (Int32 4, (9,12--9,13)), false, + PreXmlDoc ((9,12), FSharp.Compiler.Xml.XmlDocCollector), + None, (9,12--9,13), { LeadingKeyword = None })], + PreXmlDoc ((9,4), FSharp.Compiler.Xml.XmlDocCollector), + None, (9,6--9,13), { BarRange = Some (9,4--9,5) })], + (6,4--9,13)), (6,4--9,13)), [], None, (5,5--9,13), + { LeadingKeyword = Type (5,0--5,4) + EqualsRange = Some (5,7--5,8) + WithKeyword = None })], (5,0--9,13)); + Let + (false, + [SynBinding + (None, Normal, false, false, [], + PreXmlDoc ((11,0), FSharp.Compiler.Xml.XmlDocCollector), + SynValData + (None, SynValInfo ([], SynArgInfo ([], false, None)), None), + Named (SynIdent (b, None), false, None, (11,4--11,5)), None, + Const (Unit, (11,8--11,10)), (11,4--11,5), Yes (11,0--11,10), + { LeadingKeyword = Let (11,0--11,3) + InlineKeyword = None + EqualsRange = Some (11,6--11,7) })], (11,0--11,10))], + PreXmlDoc ((1,0), FSharp.Compiler.Xml.XmlDocCollector), [], None, + (1,0--11,10), { LeadingKeyword = Module (1,0--1,6) })], (true, true), + { ConditionalDirectives = [] + CodeComments = [] }, set [])) + +(7,6)-(7,18) parse error Missing keyword 'of' +(9,6)-(9,13) parse error Missing keyword 'of' diff --git a/tests/service/data/SyntaxTree/UnionCase/Missing name 05.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/Missing name 05.fs.bsl index a9b9069f2bf..a258d294e96 100644 --- a/tests/service/data/SyntaxTree/UnionCase/Missing name 05.fs.bsl +++ b/tests/service/data/SyntaxTree/UnionCase/Missing name 05.fs.bsl @@ -41,5 +41,5 @@ ImplFile { ConditionalDirectives = [] CodeComments = [] }, set [])) -(5,6)-(5,14) parse error Accessibility modifiers are not permitted on union cases. Use 'type U = internal ...' or 'type U = private ...' to give an accessibility to the whole representation. (5,15)-(5,17) parse error Missing union case name +(5,6)-(5,14) parse error Accessibility modifiers are not permitted on union cases. Use 'type U = internal ...' or 'type U = private ...' to give an accessibility to the whole representation. diff --git a/tests/service/data/SyntaxTree/UnionCase/Missing name 06.fs.bsl b/tests/service/data/SyntaxTree/UnionCase/Missing name 06.fs.bsl index 41a4bf12268..27516955a99 100644 --- a/tests/service/data/SyntaxTree/UnionCase/Missing name 06.fs.bsl +++ b/tests/service/data/SyntaxTree/UnionCase/Missing name 06.fs.bsl @@ -35,5 +35,5 @@ ImplFile CodeComments = [] }, set [])) (6,4)-(6,5) parse error Unexpected symbol '|' in union case -(5,6)-(5,14) parse error Accessibility modifiers are not permitted on union cases. Use 'type U = internal ...' or 'type U = private ...' to give an accessibility to the whole representation. (5,15)-(5,17) parse error Missing union case name +(5,6)-(5,14) parse error Accessibility modifiers are not permitted on union cases. Use 'type U = internal ...' or 'type U = private ...' to give an accessibility to the whole representation. From ec750b08d2029dde7734f34427676d2cf3035b30 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Sat, 24 Jun 2023 13:30:07 +0000 Subject: [PATCH 30/54] Update dependencies from https://github.com/dotnet/arcade build 20230622.2 Microsoft.DotNet.Arcade.Sdk From Version 8.0.0-beta.23309.8 -> To Version 8.0.0-beta.23322.2 Dependency coherency updates Microsoft.SourceBuild.Intermediate.xliff-tasks,Microsoft.SourceLink.GitHub From Version 1.0.0-beta.23305.1 -> To Version 1.0.0-beta.23312.2 (parent: Microsoft.DotNet.Arcade.Sdk --- eng/Version.Details.xml | 4 ++-- global.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index fd6b6a3f893..7bdb0171cef 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -34,9 +34,9 @@ - + https://github.com/dotnet/arcade - 06d73ccc1f421af06c2794741a9913f474f66b3d + 9747cf5ac4abb6a5a13cf31fa78b91d599180e07 diff --git a/global.json b/global.json index 69c511874c8..be73102efcc 100644 --- a/global.json +++ b/global.json @@ -18,7 +18,7 @@ "perl": "5.32.1.1" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23320.3", + "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.23322.2", "Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2" } } From dc008b4ebeb753c1447aff11d3034e946b9e089f Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Tue, 27 Jun 2023 15:21:49 +0200 Subject: [PATCH 31/54] [release/net8] Update dependencies from dotnet/source-build-reference-packages (#15460) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Vlad Zarytovskii --- eng/SourceBuildPrebuiltBaseline.xml | 3 +++ eng/Version.Details.xml | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/eng/SourceBuildPrebuiltBaseline.xml b/eng/SourceBuildPrebuiltBaseline.xml index 5bb98787409..426cdeb0d55 100644 --- a/eng/SourceBuildPrebuiltBaseline.xml +++ b/eng/SourceBuildPrebuiltBaseline.xml @@ -14,6 +14,9 @@ + + + diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 8ee34b26ed4..4f4a706a1de 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -6,9 +6,9 @@ d033e96327903618482de22f76c971c7fe91e8f4 - + https://github.com/dotnet/source-build-reference-packages - 3e92e7cead1e08476973f637007bb22cde7843ca + e910f7bdd090fb8f4a9122a1054a8b43a006b0a7 From 6151b1f4ef6c527d9deea6c1162f92ab64f6bbb5 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Wed, 28 Jun 2023 01:04:18 +0200 Subject: [PATCH 32/54] Disable experimental due to flakiness --- azure-pipelines.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index c443be4ca17..7af21fa26ab 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -223,7 +223,7 @@ stages: regular: _experimental_flag: '' experimental_features: - _experimental_flag: 1 + _experimental_flag: '' steps: - checkout: self clean: true @@ -513,7 +513,7 @@ stages: regular: _experimental_flag: '' experimental_features: - _experimental_flag: 1 + _experimental_flag: '' steps: - checkout: self clean: true From e0d1215935afb305badc074639c89109509dd7b0 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Thu, 29 Jun 2023 13:04:03 +0200 Subject: [PATCH 33/54] Versions --- azure-pipelines.yml | 10 +++++----- eng/Versions.props | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 9c7f04f7d29..743501fa841 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -86,11 +86,11 @@ stages: # Signed build # #-------------------------------------------------------------------------------------------------------------------# - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/release/dev17.7') }}: + - ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/release/dev17.8') }}: - template: /eng/common/templates/job/onelocbuild.yml parameters: MirrorRepo: fsharp - MirrorBranch: release/dev17.7 + MirrorBranch: release/dev17.8 LclSource: lclFilesfromPackage LclPackageId: 'LCL-JUNO-PROD-FSHARP' - template: /eng/common/templates/jobs/jobs.yml @@ -371,7 +371,7 @@ stages: displayName: Build / Integration Test continueOnError: true condition: eq(variables['_testKind'], 'testIntegration') - + - task: PublishTestResults@2 displayName: Publish Test Results inputs: @@ -709,8 +709,8 @@ stages: - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - template: eng/release/insert-into-vs.yml parameters: - componentBranchName: refs/heads/release/dev17.7 - insertTargetBranch: rel/d17.7 + componentBranchName: refs/heads/release/dev17.8 + insertTargetBranch: main insertTeamEmail: fsharpteam@microsoft.com insertTeamName: 'F#' completeInsertion: 'auto' diff --git a/eng/Versions.props b/eng/Versions.props index 41df94ca4b3..376f9cf1c41 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -56,7 +56,7 @@ 17 - 7 + 8 $(VSMajorVersion).0 $(VSMajorVersion).$(VSMinorVersion).0 $(VSAssemblyVersionPrefix).0 From 361d1bba414ac2cb14726a275656d8fdfe46badb Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Thu, 29 Jun 2023 13:23:15 +0200 Subject: [PATCH 34/54] Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2211783 --- src/Compiler/xlf/FSComp.txt.cs.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.de.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.es.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.fr.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.it.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.ja.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.ko.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.pl.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.ru.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.tr.xlf | 4 ++-- 11 files changed, 22 insertions(+), 22 deletions(-) diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index ba4d6f56700..ca6b200d289 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -1164,7 +1164,7 @@ The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods - Konstrukt let! ... and! ... se dá použít jen v případě, že tvůrce výpočetních výrazů definuje buď metodu {0}, nebo vhodné metody MergeSource a Bind. + The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods @@ -3294,7 +3294,7 @@ When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. - Zadali jste víc dostupností pro metodu getter nebo setter vlastnosti. + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index d237d00b0bb..bdf17adf380 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -1164,7 +1164,7 @@ The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods - Das Konstrukt "let! ... and! ..." kann nur verwendet werden, wenn der Berechnungsausdrucks-Generator entweder eine {0}-Methode oder geeignete MergeSource- und Bind-Methoden definiert. + The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods @@ -3294,7 +3294,7 @@ When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. - Für den Getter oder Setter der Eigenschaft wurden mehrere Zugriffsebenen angegeben. + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index 4d66d0eb7a9..c5007a50061 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -1164,7 +1164,7 @@ The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods - La construcción "let! ... and! ..." solo se puede usar si el generador de expresiones de cálculo define un método "{0}" o bien los métodos "MergeSource" y "Bind" adecuados. + The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods @@ -3294,7 +3294,7 @@ When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. - Se proporcionaron varias accesibilidades para un captador o establecedor de propiedad. + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index bc260b30558..c2463e00d85 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -1164,7 +1164,7 @@ The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods - La construction 'let! ... and! ...' peut uniquement être utilisée si le générateur d'expressions de calcul définit une méthode '{0}' ou les méthodes 'MergeSource' et 'Bind' appropriées + The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods @@ -3294,7 +3294,7 @@ When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. - Plusieurs accessibilités fournies pour la méthode getter ou setter de la propriété + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index 32fc7cc3297..5ebbcba622c 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -1164,7 +1164,7 @@ The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods - È possibile usare il costrutto 'let! ... and! ...' solo se il generatore di espressioni di calcolo definisce un metodo '{0}' o metodi 'MergeSource' e 'Bind' appropriati + The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods @@ -3294,7 +3294,7 @@ When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. - Sono state assegnate più accessibilità per il getter o il setter della proprietà + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 5a4a3aa3780..c1386905952 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -1164,7 +1164,7 @@ The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods - 'let! ... and! ...' コンストラクトは、コンピュテーション式ビルダーが '{0}' メソッドまたは適切な 'MergeSource' および 'Bind' メソッドのいずれかを定義している場合にのみ使用できます + The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods @@ -3294,7 +3294,7 @@ When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. - プロパティのゲッターまたはセッターに指定されたアクセシビリティが複数あります + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index ae19ea8cba1..0eb30c8dded 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -1164,7 +1164,7 @@ The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods - 'let! ... and! ...' 구문은 계산 식 작성기에서 '{0}' 메서드 또는 적절한 'MergeSource' 및 'Bind' 메서드를 정의한 경우에만 사용할 수 있습니다. + The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods @@ -3294,7 +3294,7 @@ When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. - 속성 getter 또는 setter에 대해 여러 액세스 가능성이 지정되었습니다. + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index 2d9f6260661..3f6fea05549 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -1164,7 +1164,7 @@ The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods - Konstrukcji „let! ... and! ...” można użyć tylko wtedy, gdy konstruktor wyrażeń obliczeniowych definiuje metodę „{0}” lub odpowiednie metody „MergeSource” i „Bind” + The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods @@ -3294,7 +3294,7 @@ When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. - Podano wiele dostępności dla metody ustawiającej lub metody pobierającej właściwość + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index e7eca0e8cc8..f6266c53e42 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -1164,7 +1164,7 @@ The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods - O constructo 'let! ... and! ...' só pode ser usado se o construtor de expressões de computação definir um método '{0}' ou um método 'MergeSource' ou 'Bind' apropriado + The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods @@ -3294,7 +3294,7 @@ When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. - Acessibilidades múltiplas fornecidas para getter ou setter de propriedade + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index 935a43f80c6..ecdcfa32b82 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -1164,7 +1164,7 @@ The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods - Конструкцию "let! ... and! ..." можно использовать только в том случае, если построитель выражений с вычислениями определяет либо метод "{0}", либо соответствующие методы "MergeSource" и "Bind" + The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods @@ -3294,7 +3294,7 @@ When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. - Задано несколько модификаторов доступности для метода получения или задания свойства + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index f18331c895e..0fa9a39ce0e 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -1164,7 +1164,7 @@ The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods - 'let! ... and! ...' yapısı, yalnızca hesaplama ifadesi oluşturucu bir '{0}' metodunu ya da uygun 'MergeSource' ve 'Bind' metotlarını tanımlarsa kullanılabilir + The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods @@ -3294,7 +3294,7 @@ When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. - Özellik alıcı veya ayarlayıcı için birden çok erişilebilirlik verildi + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. From 98718899ebe01c4b38458d3fcbb34f1e504f26ac Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Thu, 29 Jun 2023 13:24:22 +0200 Subject: [PATCH 35/54] Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2211783 --- src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index accbfb9ffb9..99389653fa3 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -1164,7 +1164,7 @@ The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods - 仅当计算表达式生成器定义了 "{0}" 方法或适当的 "MergeSource" 和 "Bind" 方法时,才可以使用 "let! ... and! ..." 构造 + The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods @@ -3294,7 +3294,7 @@ When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. - 为属性 Getter 或 Setter 给定了多个可访问性 + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 23632e36092..3eb9b4952ab 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -1164,7 +1164,7 @@ The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods - 只有在計算運算式產生器定義 '{0}' 方法或正確的 'MergeSource' 和 'Bind' 方法時,才可使用 'let! ... and! ...' 建構 + The 'let! ... and! ...' construct may only be used if the computation expression builder defines either a '{0}' method or appropriate 'MergeSources' and 'Bind' methods @@ -3294,7 +3294,7 @@ When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. - 為屬性 getter 或 setter 指定了多個存取範圍 + When the visibility for a property is specified, setting the visibility of the set or get method is not allowed. From b633f054496636370148ca3fc3a76c30753f7da4 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Tue, 11 Jul 2023 10:07:00 +0200 Subject: [PATCH 36/54] Add mibc dependencies --- eng/Version.Details.xml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 76d28f379e9..367b384232f 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -44,5 +44,25 @@ 4d2c8bf58e8cb7900ec2d9077c155572e2d3cd88 + + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization + 001c9cc7e8b0769fab874e6298dd179960d2639c + + + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization + 001c9cc7e8b0769fab874e6298dd179960d2639c + + + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization + 001c9cc7e8b0769fab874e6298dd179960d2639c + + + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization + 001c9cc7e8b0769fab874e6298dd179960d2639c + + + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization + 001c9cc7e8b0769fab874e6298dd179960d2639c + From c64d35261a1ed7c70f28cae289eeca26e8cba902 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Tue, 11 Jul 2023 10:19:36 +0000 Subject: [PATCH 37/54] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230710.7 optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime From Version 1.0.0-prerelease.23354.4 -> To Version 1.0.0-prerelease.23360.7 --- eng/Version.Details.xml | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 367b384232f..d83b4bc6884 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -44,25 +44,25 @@ 4d2c8bf58e8cb7900ec2d9077c155572e2d3cd88 - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 001c9cc7e8b0769fab874e6298dd179960d2639c + 50a32b0c33d5eb0108c5d4d4c26c16dcf29ae8e3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 001c9cc7e8b0769fab874e6298dd179960d2639c + 50a32b0c33d5eb0108c5d4d4c26c16dcf29ae8e3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 001c9cc7e8b0769fab874e6298dd179960d2639c + 50a32b0c33d5eb0108c5d4d4c26c16dcf29ae8e3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 001c9cc7e8b0769fab874e6298dd179960d2639c + 50a32b0c33d5eb0108c5d4d4c26c16dcf29ae8e3 - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 001c9cc7e8b0769fab874e6298dd179960d2639c + 50a32b0c33d5eb0108c5d4d4c26c16dcf29ae8e3 From 8b3338186fcb78fab4a862fc4cebd5e40a2f4b15 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Tue, 11 Jul 2023 12:43:32 +0200 Subject: [PATCH 38/54] Added package versions to consume later from targets --- eng/Versions.props | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/eng/Versions.props b/eng/Versions.props index 376f9cf1c41..3bb721a0ede 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -205,5 +205,11 @@ 2.4.2 5.10.3 2.2.0 + + 1.0.0-prerelease.23360.7 + 1.0.0-prerelease.23360.7 + 1.0.0-prerelease.23360.7 + 1.0.0-prerelease.23360.7 + 1.0.0-prerelease.23360.7 From 95acbd64fad61e7471586d0c6e98f0710645a53d Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 12 Jul 2023 13:45:16 +0000 Subject: [PATCH 39/54] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230711.5 optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime From Version 1.0.0-prerelease.23360.7 -> To Version 1.0.0-prerelease.23361.5 --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d83b4bc6884..e4dd0ada103 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -44,25 +44,25 @@ 4d2c8bf58e8cb7900ec2d9077c155572e2d3cd88 - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 50a32b0c33d5eb0108c5d4d4c26c16dcf29ae8e3 + 228a2a995e2fbc3b545ecb4d4a73df1744ad3845 - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 50a32b0c33d5eb0108c5d4d4c26c16dcf29ae8e3 + 228a2a995e2fbc3b545ecb4d4a73df1744ad3845 - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 50a32b0c33d5eb0108c5d4d4c26c16dcf29ae8e3 + 228a2a995e2fbc3b545ecb4d4a73df1744ad3845 - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 50a32b0c33d5eb0108c5d4d4c26c16dcf29ae8e3 + 228a2a995e2fbc3b545ecb4d4a73df1744ad3845 - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 50a32b0c33d5eb0108c5d4d4c26c16dcf29ae8e3 + 228a2a995e2fbc3b545ecb4d4a73df1744ad3845 diff --git a/eng/Versions.props b/eng/Versions.props index 3bb721a0ede..33d99233cc3 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -206,10 +206,10 @@ 5.10.3 2.2.0 - 1.0.0-prerelease.23360.7 - 1.0.0-prerelease.23360.7 - 1.0.0-prerelease.23360.7 - 1.0.0-prerelease.23360.7 - 1.0.0-prerelease.23360.7 + 1.0.0-prerelease.23361.5 + 1.0.0-prerelease.23361.5 + 1.0.0-prerelease.23361.5 + 1.0.0-prerelease.23361.5 + 1.0.0-prerelease.23361.5 From c7235eab2d17c94ddeda24d61379d246cdc174f4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 13 Jul 2023 13:41:50 +0000 Subject: [PATCH 40/54] Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20230712.5 optimization.linux-arm64.MIBC.Runtime , optimization.linux-x64.MIBC.Runtime , optimization.windows_nt-arm64.MIBC.Runtime , optimization.windows_nt-x64.MIBC.Runtime , optimization.windows_nt-x86.MIBC.Runtime From Version 1.0.0-prerelease.23361.5 -> To Version 1.0.0-prerelease.23362.5 --- eng/Version.Details.xml | 20 ++++++++++---------- eng/Versions.props | 10 +++++----- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index e4dd0ada103..7823981ca2c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -44,25 +44,25 @@ 4d2c8bf58e8cb7900ec2d9077c155572e2d3cd88 - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 228a2a995e2fbc3b545ecb4d4a73df1744ad3845 + 068998a5d91f55a619d1d072ab3094dacd5d6a4f - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 228a2a995e2fbc3b545ecb4d4a73df1744ad3845 + 068998a5d91f55a619d1d072ab3094dacd5d6a4f - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 228a2a995e2fbc3b545ecb4d4a73df1744ad3845 + 068998a5d91f55a619d1d072ab3094dacd5d6a4f - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 228a2a995e2fbc3b545ecb4d4a73df1744ad3845 + 068998a5d91f55a619d1d072ab3094dacd5d6a4f - + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization - 228a2a995e2fbc3b545ecb4d4a73df1744ad3845 + 068998a5d91f55a619d1d072ab3094dacd5d6a4f diff --git a/eng/Versions.props b/eng/Versions.props index 33d99233cc3..ac895649e13 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -206,10 +206,10 @@ 5.10.3 2.2.0 - 1.0.0-prerelease.23361.5 - 1.0.0-prerelease.23361.5 - 1.0.0-prerelease.23361.5 - 1.0.0-prerelease.23361.5 - 1.0.0-prerelease.23361.5 + 1.0.0-prerelease.23362.5 + 1.0.0-prerelease.23362.5 + 1.0.0-prerelease.23362.5 + 1.0.0-prerelease.23362.5 + 1.0.0-prerelease.23362.5 From 91884ef1b540afd11d4a1020b166790d6b6e63c1 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Wed, 19 Jul 2023 11:34:50 +0200 Subject: [PATCH 41/54] [release/dev17.8] Update dependencies from dotnet/source-build-reference-packages (#15528) From edbf2267ea0950dc699fadc3947821d29f21f6c3 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Wed, 19 Jul 2023 18:34:48 +0200 Subject: [PATCH 42/54] Update Version.Details.xml --- eng/Version.Details.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2b91ebec3c2..2ca99756c8c 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -43,6 +43,7 @@ https://github.com/dotnet/xliff-tasks a171b61473272e5a6d272117963864ba958a012a + https://dev.azure.com/dnceng/internal/_git/dotnet-optimization 068998a5d91f55a619d1d072ab3094dacd5d6a4f From c95733c83ac45fb804c414c6a78efd1e046fd976 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" <42748379+dotnet-maestro[bot]@users.noreply.github.com> Date: Fri, 21 Jul 2023 13:29:37 +0200 Subject: [PATCH 43/54] [release/dev17.8] Update dependencies from dotnet/source-build-reference-packages (#15528) Co-authored-by: dotnet-maestro[bot] Co-authored-by: Vlad Zarytovskii From a5b61fdf5a25016741d30f9556ea5e4389220671 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Mon, 24 Jul 2023 12:17:53 +0200 Subject: [PATCH 44/54] Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2227116 (#15654) Co-authored-by: Vlad Zarytovskii --- src/Compiler/xlf/FSComp.txt.cs.xlf | 2 +- src/Compiler/xlf/FSComp.txt.de.xlf | 2 +- src/Compiler/xlf/FSComp.txt.es.xlf | 2 +- src/Compiler/xlf/FSComp.txt.fr.xlf | 2 +- src/Compiler/xlf/FSComp.txt.it.xlf | 2 +- src/Compiler/xlf/FSComp.txt.ja.xlf | 2 +- src/Compiler/xlf/FSComp.txt.ko.xlf | 2 +- src/Compiler/xlf/FSComp.txt.pl.xlf | 2 +- src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 2 +- src/Compiler/xlf/FSComp.txt.ru.xlf | 2 +- src/Compiler/xlf/FSComp.txt.tr.xlf | 2 +- src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 2 +- src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index 98f8fbb32e2..bb2438f0634 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -4944,7 +4944,7 @@ For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. - Statické definice hodnot se dají použít jenom u typů s primárním konstruktorem. Zvažte přidání argumentů do definice typu, třeba type X(args) = ... + For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index dd69a9cb70c..ec267ec8031 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -4944,7 +4944,7 @@ For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. - Statische Wertdefinitionen dürfen nur in Typen mit einem primären Konstruktor verwendet werden. Ziehen Sie in Betracht, Argumente zur Typdefinition hinzuzufügen, z. B. "type X(args) = ...". + For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index 995caf36f29..efaf9048da7 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -4944,7 +4944,7 @@ For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. - Las definiciones de valores estáticos se pueden usar solo en tipos con un constructor principal. Considere agregar argumentos a la definición de tipo, por ejemplo, 'type X(args) = ...'. + For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index 81f2e387209..58d1ed30c3e 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -4944,7 +4944,7 @@ For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. - Les définitions de valeur statiques peuvent uniquement être utilisées dans les types comportant un constructeur principal. Ajoutez des arguments à la définition de type, par exemple 'type X(args) = …'. + For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index 9ea2c0749a0..0544bf47675 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -4944,7 +4944,7 @@ For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. - Le definizioni di valore statiche possono essere utilizzate solo nei tipi con un costruttore primario. Provare ad aggiungere argomenti alla definizione di tipo, ad esempio 'type X(args) = ...'. + For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 67a1a83c4fb..f33b88a39c4 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -4944,7 +4944,7 @@ For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. - 静的な値の定義は、プライマリ コンストラクターを含む型でのみ使用できます。型定義に引数を追加してください ( たとえば、'type X(args) = ...')。 + For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index 1e2f1add74f..dfa8bd35a6e 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -4944,7 +4944,7 @@ For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. - 정적 값 정의는 기본 생성자가 포함된 형식에서만 사용할 수 있습니다. 'type X(args) = ...'와 같이 형식 정의에 인수를 추가해 보세요. + For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index b5d7037b1f5..e1e25e6d8c8 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -4944,7 +4944,7 @@ For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. - Definicje wartości statycznych mogą być używane tylko w przypadku typów z konstruktorem podstawowym. Rozważ dodanie argumentów do definicji typu, na przykład „type X(argumenty) = ...”. + For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index dadd8ddd49a..67776d82af2 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -4944,7 +4944,7 @@ For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. - Definições de valores estáticos só podem ser usadas em tipos com um construtor primário. Considere adicionar argumentos à definição de tipo, por exemplo, 'type X(args) = ...'. + For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index c8d7d9aa5c8..267e58d4a5c 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -4944,7 +4944,7 @@ For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. - Статические определения значений можно использовать только в типах с первичными конструкторами. Попробуйте добавить в определение типа аргументы, напр. "type X(args) = ...". + For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index a55679f4cd5..fe336a6fee4 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -4944,7 +4944,7 @@ For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. - Statik değer tanımları yalnızca birincil oluşturucusu olan türlerde kullanılabilir. Tür tanımına bağımsız değişkenler eklemeyi düşünün, örn. 'type X(args) = ...'. + For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index aa75404b146..41492c671aa 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -4944,7 +4944,7 @@ For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. - 静态值定义只能在具有主构造函数的类型中使用。请考虑向类型定义添加参数,例如“type X(args) = ...”。 + For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index f45c6e2154c..1f1a9159c0e 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -4944,7 +4944,7 @@ For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. - 靜態值定義只能用於含有主要建構函式的類型中。請考慮在類型定義加入引數,例如 'type X(args) = ...'。 + For F#7 and lower, static value definitions may only be used in types with a primary constructor ('type X(args) = ...'). To enable them in all other types, use language version 'preview'. From 216c43ee371e0452c216363fff71570e802e86c0 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 1 Aug 2023 14:47:50 +0200 Subject: [PATCH 45/54] Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2233449 --- src/Compiler/xlf/FSComp.txt.cs.xlf | 2 +- src/Compiler/xlf/FSComp.txt.de.xlf | 2 +- src/Compiler/xlf/FSComp.txt.es.xlf | 2 +- src/Compiler/xlf/FSComp.txt.fr.xlf | 2 +- src/Compiler/xlf/FSComp.txt.it.xlf | 2 +- src/Compiler/xlf/FSComp.txt.ja.xlf | 2 +- src/Compiler/xlf/FSComp.txt.ko.xlf | 2 +- src/Compiler/xlf/FSComp.txt.pl.xlf | 2 +- src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 2 +- src/Compiler/xlf/FSComp.txt.ru.xlf | 2 +- src/Compiler/xlf/FSComp.txt.tr.xlf | 2 +- 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index 5d7aa4c3ddd..39b58d2b10d 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -1029,7 +1029,7 @@ This anonymous record has too many fields. Remove the extra fields {0}. - Tento anonymní záznam má příliš mnoho polí. Odeberte nadbytečná pole {0}. + Tento anonymní záznam má příliš mnoho polí. Odeberte nadbytečná pole {0}. diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index ccc264ab480..8f605883ecd 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -1029,7 +1029,7 @@ This anonymous record has too many fields. Remove the extra fields {0}. - Dieser anonyme Datensatz enthält zu viele Felder. Entfernen Sie die zusätzlichen Felder ({0}). + Dieser anonyme Datensatz enthält zu viele Felder. Entfernen Sie die zusätzlichen Felder ({0}). diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index c063ac93b4d..1e089b8828f 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -1029,7 +1029,7 @@ This anonymous record has too many fields. Remove the extra fields {0}. - Este registro anónimo tiene demasiados campos. Quite los campos adicionales {0}. + Este registro anónimo tiene demasiados campos. Quite los campos adicionales {0}. diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index 299d23637ee..25f1b9d867c 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -1029,7 +1029,7 @@ This anonymous record has too many fields. Remove the extra fields {0}. - Cet enregistrement anonyme a trop de champs. Supprimez les champs supplémentaires {0}. + Cet enregistrement anonyme a trop de champs. Supprimez les champs supplémentaires {0}. diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index c0d5f426e42..78cc5016210 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -1029,7 +1029,7 @@ This anonymous record has too many fields. Remove the extra fields {0}. - Questo record anonimo contiene troppi campi. Rimuovere i campi aggiuntivi {0}. + Questo record anonimo contiene troppi campi. Rimuovere i campi aggiuntivi {0}. diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 2dbb0057a43..43a0f3f6ed1 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -1029,7 +1029,7 @@ This anonymous record has too many fields. Remove the extra fields {0}. - この匿名レコードはフィールドが多すぎます。不要なフィールド {0} を削除してください。 + この匿名レコードはフィールドが多すぎます。不要なフィールド {0} を削除してください。 diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index 9acd961949d..967c30cf330 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -1029,7 +1029,7 @@ This anonymous record has too many fields. Remove the extra fields {0}. - 이 익명 레코드에 필드가 너무 많습니다. 추가 필드 {0}을(를) 제거하세요. + 이 익명 레코드에 필드가 너무 많습니다. 추가 필드 {0}을(를) 제거하세요. diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index 2f58b8d20b5..52fd22b548b 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -1029,7 +1029,7 @@ This anonymous record has too many fields. Remove the extra fields {0}. - Ten rekord anonimowy ma za dużo pól. Usuń dodatkowe pola {0}. + Ten rekord anonimowy ma za dużo pól. Usuń dodatkowe pola {0}. diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index 32772b7464f..3cdba1cc90c 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -1029,7 +1029,7 @@ This anonymous record has too many fields. Remove the extra fields {0}. - Este registro anônimo tem muitos campos. Remova os campos extras {0}. + Este registro anônimo tem muitos campos. Remova os campos extras {0}. diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index 173d4ad16e5..9ebdceadb05 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -1029,7 +1029,7 @@ This anonymous record has too many fields. Remove the extra fields {0}. - Эта анонимная запись содержит слишком много полей. Удалите лишние поля {0}. + Эта анонимная запись содержит слишком много полей. Удалите лишние поля {0}. diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index 778e02ead36..265e937bc6a 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -1029,7 +1029,7 @@ This anonymous record has too many fields. Remove the extra fields {0}. - Bu anonim kayıtta çok fazla alan var. Ek {0} alanlarını kaldırın. + Bu anonim kayıtta çok fazla alan var. Ek {0} alanlarını kaldırın. From a595e5e4bee623ab860ec176a2dd954a5ad107bc Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 1 Aug 2023 14:49:00 +0200 Subject: [PATCH 46/54] Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2233449 --- src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 2 +- src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index 5856b68825c..4869d5d8d73 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -1029,7 +1029,7 @@ This anonymous record has too many fields. Remove the extra fields {0}. - 此匿名记录的字段太多。请删除额外的字段 {0}。 + 此匿名记录的字段太多。请删除额外的字段 {0}。 diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index b17c7913e7d..8f7059ce8c8 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -1029,7 +1029,7 @@ This anonymous record has too many fields. Remove the extra fields {0}. - 此匿名記錄有太多欄位。請移除額外的欄位 {0}。 + 此匿名記錄有太多欄位。請移除額外的欄位 {0}。 From 69de5a11f255b6665bb7dc17ca7626089d3d89c7 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 1 Aug 2023 23:08:19 +0200 Subject: [PATCH 47/54] Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2233941 --- src/Compiler/xlf/FSComp.txt.cs.xlf | 15 ++++++++++----- src/Compiler/xlf/FSComp.txt.de.xlf | 15 ++++++++++----- src/Compiler/xlf/FSComp.txt.es.xlf | 15 ++++++++++----- src/Compiler/xlf/FSComp.txt.fr.xlf | 15 ++++++++++----- src/Compiler/xlf/FSComp.txt.it.xlf | 15 ++++++++++----- src/Compiler/xlf/FSComp.txt.ja.xlf | 15 ++++++++++----- src/Compiler/xlf/FSComp.txt.ko.xlf | 15 ++++++++++----- src/Compiler/xlf/FSComp.txt.pl.xlf | 15 ++++++++++----- src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 15 ++++++++++----- src/Compiler/xlf/FSComp.txt.ru.xlf | 15 ++++++++++----- src/Compiler/xlf/FSComp.txt.tr.xlf | 15 ++++++++++----- 11 files changed, 110 insertions(+), 55 deletions(-) diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index 39b58d2b10d..2bf532dc819 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -1027,11 +1027,6 @@ Toto je nesprávný anonymní záznam. Měl by mít pole {0}. - - This anonymous record has too many fields. Remove the extra fields {0}. - Tento anonymní záznam má příliš mnoho polí. Odeberte nadbytečná pole {0}. - - Invalid Anonymous Record type declaration. Neplatná deklarace typu anonymního záznamu @@ -1042,11 +1037,21 @@ This anonymous record is missing fields '{0}'. + + This anonymous record has extra fields. Remove fields '{0}'. + This anonymous record has extra fields. Remove fields '{0}'. + + This anonymous record is missing field '{0}'. This anonymous record is missing field '{0}'. + + This anonymous record has an extra field. Remove field '{0}'. + This anonymous record has an extra field. Remove field '{0}'. + + The field '{0}' appears multiple times in this anonymous record type. Pole {0} se v tomto anonymním typu záznamu vyskytuje vícekrát. diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index 8f605883ecd..769894c579d 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -1027,11 +1027,6 @@ Dies ist der falsche anonyme Datensatz. Er muss folgende Felder umfassen: {0}. - - This anonymous record has too many fields. Remove the extra fields {0}. - Dieser anonyme Datensatz enthält zu viele Felder. Entfernen Sie die zusätzlichen Felder ({0}). - - Invalid Anonymous Record type declaration. Ungültige Deklaration für anonymen Datensatztyp. @@ -1042,11 +1037,21 @@ This anonymous record is missing fields '{0}'. + + This anonymous record has extra fields. Remove fields '{0}'. + This anonymous record has extra fields. Remove fields '{0}'. + + This anonymous record is missing field '{0}'. This anonymous record is missing field '{0}'. + + This anonymous record has an extra field. Remove field '{0}'. + This anonymous record has an extra field. Remove field '{0}'. + + The field '{0}' appears multiple times in this anonymous record type. Das Feld "{0}" ist in diesem anonymen Datensatztyp mehrmals vorhanden. diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index 1e089b8828f..3003272b2fc 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -1027,11 +1027,6 @@ Este es un registro anónimo incorrecto. Debe tener los campos {0}. - - This anonymous record has too many fields. Remove the extra fields {0}. - Este registro anónimo tiene demasiados campos. Quite los campos adicionales {0}. - - Invalid Anonymous Record type declaration. Declaración de tipo de registro anónimo no válido. @@ -1042,11 +1037,21 @@ This anonymous record is missing fields '{0}'. + + This anonymous record has extra fields. Remove fields '{0}'. + This anonymous record has extra fields. Remove fields '{0}'. + + This anonymous record is missing field '{0}'. This anonymous record is missing field '{0}'. + + This anonymous record has an extra field. Remove field '{0}'. + This anonymous record has an extra field. Remove field '{0}'. + + The field '{0}' appears multiple times in this anonymous record type. El campo "{0}" aparece varias veces en este tipo de registro anónimo. diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index 25f1b9d867c..7e9af5f56d2 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -1027,11 +1027,6 @@ Il s'agit de l'enregistrement anonyme incorrect. Il doit contenir les champs {0}. - - This anonymous record has too many fields. Remove the extra fields {0}. - Cet enregistrement anonyme a trop de champs. Supprimez les champs supplémentaires {0}. - - Invalid Anonymous Record type declaration. Déclaration de type d'enregistrement anonyme non valide. @@ -1042,11 +1037,21 @@ This anonymous record is missing fields '{0}'. + + This anonymous record has extra fields. Remove fields '{0}'. + This anonymous record has extra fields. Remove fields '{0}'. + + This anonymous record is missing field '{0}'. This anonymous record is missing field '{0}'. + + This anonymous record has an extra field. Remove field '{0}'. + This anonymous record has an extra field. Remove field '{0}'. + + The field '{0}' appears multiple times in this anonymous record type. Le champ '{0}' apparaît plusieurs fois dans ce type d'enregistrement anonyme. diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index 78cc5016210..b318fce6fba 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -1027,11 +1027,6 @@ Si tratta del record anonimo errato. Deve includere i campi {0}. - - This anonymous record has too many fields. Remove the extra fields {0}. - Questo record anonimo contiene troppi campi. Rimuovere i campi aggiuntivi {0}. - - Invalid Anonymous Record type declaration. La dichiarazione di tipo Record anonimo non è valida. @@ -1042,11 +1037,21 @@ This anonymous record is missing fields '{0}'. + + This anonymous record has extra fields. Remove fields '{0}'. + This anonymous record has extra fields. Remove fields '{0}'. + + This anonymous record is missing field '{0}'. This anonymous record is missing field '{0}'. + + This anonymous record has an extra field. Remove field '{0}'. + This anonymous record has an extra field. Remove field '{0}'. + + The field '{0}' appears multiple times in this anonymous record type. Il campo '{0}' viene visualizzato più volte in questo tipo di record anonimo. diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 43a0f3f6ed1..dd89ae30f0c 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -1027,11 +1027,6 @@ この匿名レコードは正しくありません。フィールド {0} を含んでいる必要があります。 - - This anonymous record has too many fields. Remove the extra fields {0}. - この匿名レコードはフィールドが多すぎます。不要なフィールド {0} を削除してください。 - - Invalid Anonymous Record type declaration. 匿名レコードの型宣言が無効です。 @@ -1042,11 +1037,21 @@ This anonymous record is missing fields '{0}'. + + This anonymous record has extra fields. Remove fields '{0}'. + This anonymous record has extra fields. Remove fields '{0}'. + + This anonymous record is missing field '{0}'. This anonymous record is missing field '{0}'. + + This anonymous record has an extra field. Remove field '{0}'. + This anonymous record has an extra field. Remove field '{0}'. + + The field '{0}' appears multiple times in this anonymous record type. この匿名レコードの種類に、フィールド '{0}' が複数回出現します。 diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index 967c30cf330..0e1aababf1b 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -1027,11 +1027,6 @@ 잘못된 익명 레코드입니다. {0} 필드가 있어야 합니다. - - This anonymous record has too many fields. Remove the extra fields {0}. - 이 익명 레코드에 필드가 너무 많습니다. 추가 필드 {0}을(를) 제거하세요. - - Invalid Anonymous Record type declaration. 익명 레코드 형식 선언이 잘못되었습니다. @@ -1042,11 +1037,21 @@ This anonymous record is missing fields '{0}'. + + This anonymous record has extra fields. Remove fields '{0}'. + This anonymous record has extra fields. Remove fields '{0}'. + + This anonymous record is missing field '{0}'. This anonymous record is missing field '{0}'. + + This anonymous record has an extra field. Remove field '{0}'. + This anonymous record has an extra field. Remove field '{0}'. + + The field '{0}' appears multiple times in this anonymous record type. '{0}' 필드가 이 익명 레코드 형식에서 여러 번 나타납니다. diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index 52fd22b548b..807aac96bde 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -1027,11 +1027,6 @@ To jest nieprawidłowy rekord anonimowy. Powinien zawierać pola {0}. - - This anonymous record has too many fields. Remove the extra fields {0}. - Ten rekord anonimowy ma za dużo pól. Usuń dodatkowe pola {0}. - - Invalid Anonymous Record type declaration. Nieprawidłowa deklaracja typu rekordu anonimowego. @@ -1042,11 +1037,21 @@ This anonymous record is missing fields '{0}'. + + This anonymous record has extra fields. Remove fields '{0}'. + This anonymous record has extra fields. Remove fields '{0}'. + + This anonymous record is missing field '{0}'. This anonymous record is missing field '{0}'. + + This anonymous record has an extra field. Remove field '{0}'. + This anonymous record has an extra field. Remove field '{0}'. + + The field '{0}' appears multiple times in this anonymous record type. Pole „{0}” występuje wielokrotnie w tym anonimowym typie rekordu. diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index 3cdba1cc90c..9c6f043973b 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -1027,11 +1027,6 @@ Este é o registro anônimo errado. Ele deve ter os campos {0}. - - This anonymous record has too many fields. Remove the extra fields {0}. - Este registro anônimo tem muitos campos. Remova os campos extras {0}. - - Invalid Anonymous Record type declaration. Declaração inválida de tipo de Registro Anônimo. @@ -1042,11 +1037,21 @@ This anonymous record is missing fields '{0}'. + + This anonymous record has extra fields. Remove fields '{0}'. + This anonymous record has extra fields. Remove fields '{0}'. + + This anonymous record is missing field '{0}'. This anonymous record is missing field '{0}'. + + This anonymous record has an extra field. Remove field '{0}'. + This anonymous record has an extra field. Remove field '{0}'. + + The field '{0}' appears multiple times in this anonymous record type. O campo '{0}' aparece várias vezes nesse tipo de registro anônimo. diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index 9ebdceadb05..030eccd8c78 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -1027,11 +1027,6 @@ Неправильная анонимная запись. Она должна содержать поля {0}. - - This anonymous record has too many fields. Remove the extra fields {0}. - Эта анонимная запись содержит слишком много полей. Удалите лишние поля {0}. - - Invalid Anonymous Record type declaration. Недопустимое объявление типа анонимной записи. @@ -1042,11 +1037,21 @@ This anonymous record is missing fields '{0}'. + + This anonymous record has extra fields. Remove fields '{0}'. + This anonymous record has extra fields. Remove fields '{0}'. + + This anonymous record is missing field '{0}'. This anonymous record is missing field '{0}'. + + This anonymous record has an extra field. Remove field '{0}'. + This anonymous record has an extra field. Remove field '{0}'. + + The field '{0}' appears multiple times in this anonymous record type. Поле "{0}" появляется несколько раз в этом типе анонимной записи. diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index 265e937bc6a..490c5464b82 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -1027,11 +1027,6 @@ Bu anonim kayıt yanlış. Kayıt, {0} alanlarını içermelidir. - - This anonymous record has too many fields. Remove the extra fields {0}. - Bu anonim kayıtta çok fazla alan var. Ek {0} alanlarını kaldırın. - - Invalid Anonymous Record type declaration. Anonim Kayıt türü bildirimi geçersiz. @@ -1042,11 +1037,21 @@ This anonymous record is missing fields '{0}'. + + This anonymous record has extra fields. Remove fields '{0}'. + This anonymous record has extra fields. Remove fields '{0}'. + + This anonymous record is missing field '{0}'. This anonymous record is missing field '{0}'. + + This anonymous record has an extra field. Remove field '{0}'. + This anonymous record has an extra field. Remove field '{0}'. + + The field '{0}' appears multiple times in this anonymous record type. '{0}' alanı bu anonim kayıt türünde birden fazla yerde görünüyor. From a9bb325bb4479fc602741970a4768207c1f99858 Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 1 Aug 2023 23:09:26 +0200 Subject: [PATCH 48/54] Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2233941 --- src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 15 ++++++++++----- src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 15 ++++++++++----- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index 4869d5d8d73..1be859cff6f 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -1027,11 +1027,6 @@ 此匿名记录不正确。它应具有字段 {0}。 - - This anonymous record has too many fields. Remove the extra fields {0}. - 此匿名记录的字段太多。请删除额外的字段 {0}。 - - Invalid Anonymous Record type declaration. 匿名记录类型声明无效。 @@ -1042,11 +1037,21 @@ This anonymous record is missing fields '{0}'. + + This anonymous record has extra fields. Remove fields '{0}'. + This anonymous record has extra fields. Remove fields '{0}'. + + This anonymous record is missing field '{0}'. This anonymous record is missing field '{0}'. + + This anonymous record has an extra field. Remove field '{0}'. + This anonymous record has an extra field. Remove field '{0}'. + + The field '{0}' appears multiple times in this anonymous record type. 字段“{0}”在此匿名记录类型中多次出现。 diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 8f7059ce8c8..f47234de8da 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -1027,11 +1027,6 @@ 此為錯誤的匿名記錄。其應有欄位 {0}。 - - This anonymous record has too many fields. Remove the extra fields {0}. - 此匿名記錄有太多欄位。請移除額外的欄位 {0}。 - - Invalid Anonymous Record type declaration. 匿名記錄型別宣告無效。 @@ -1042,11 +1037,21 @@ This anonymous record is missing fields '{0}'. + + This anonymous record has extra fields. Remove fields '{0}'. + This anonymous record has extra fields. Remove fields '{0}'. + + This anonymous record is missing field '{0}'. This anonymous record is missing field '{0}'. + + This anonymous record has an extra field. Remove field '{0}'. + This anonymous record has an extra field. Remove field '{0}'. + + The field '{0}' appears multiple times in this anonymous record type. 欄位 '{0}' 在這個匿名記錄類型中出現多次。 From 486d77ef8a790762334b637c9e0ed3207d95a50f Mon Sep 17 00:00:00 2001 From: dotnet bot Date: Tue, 8 Aug 2023 18:43:33 +0200 Subject: [PATCH 49/54] Localized file check-in by OneLocBuild Task: Build definition ID 499: Build ID 2238303 (#15761) --- src/Compiler/xlf/FSComp.txt.cs.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.de.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.es.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.fr.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.it.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.ja.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.ko.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.pl.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.pt-BR.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.ru.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.tr.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.zh-Hans.xlf | 4 ++-- src/Compiler/xlf/FSComp.txt.zh-Hant.xlf | 4 ++-- 13 files changed, 26 insertions(+), 26 deletions(-) diff --git a/src/Compiler/xlf/FSComp.txt.cs.xlf b/src/Compiler/xlf/FSComp.txt.cs.xlf index 76e3bdf384d..35098c78039 100644 --- a/src/Compiler/xlf/FSComp.txt.cs.xlf +++ b/src/Compiler/xlf/FSComp.txt.cs.xlf @@ -1039,7 +1039,7 @@ This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. - This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. + Tento anonymní záznam neodpovídá přesně očekávanému tvaru. Přidejte chybějící pole {0} a odeberte nadbytečná pole {1}. @@ -8514,7 +8514,7 @@ Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager - Klíč správce balíčků {0} nebyl zaregistrován v {1}. Aktuálně registrováno: {2} + Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager diff --git a/src/Compiler/xlf/FSComp.txt.de.xlf b/src/Compiler/xlf/FSComp.txt.de.xlf index a7696663188..754f5320ead 100644 --- a/src/Compiler/xlf/FSComp.txt.de.xlf +++ b/src/Compiler/xlf/FSComp.txt.de.xlf @@ -1039,7 +1039,7 @@ This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. - This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. + Dieser anonyme Datensatz stimmt nicht genau mit der erwarteten Form überein. Fügen Sie die fehlenden Felder ({0}) hinzu, und entfernen Sie die zusätzlichen Felder ({1}). @@ -8514,7 +8514,7 @@ Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager - Der Paket-Manager-Schlüssel "{0}" wurde in "{1}" nicht registriert. Aktuell registriert: {2} + Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager diff --git a/src/Compiler/xlf/FSComp.txt.es.xlf b/src/Compiler/xlf/FSComp.txt.es.xlf index 835c427b5a9..91daf83e709 100644 --- a/src/Compiler/xlf/FSComp.txt.es.xlf +++ b/src/Compiler/xlf/FSComp.txt.es.xlf @@ -1039,7 +1039,7 @@ This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. - This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. + Este registro anónimo no coincide exactamente con la forma esperada. Agregue los campos que faltan {0} y quite los campos adicionales {1}. @@ -8514,7 +8514,7 @@ Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager - La clave del administrador de paquetes "{0}" no se registró en {1}. Registrada actualmente: {2} + Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager diff --git a/src/Compiler/xlf/FSComp.txt.fr.xlf b/src/Compiler/xlf/FSComp.txt.fr.xlf index f892770bfc2..874601e6918 100644 --- a/src/Compiler/xlf/FSComp.txt.fr.xlf +++ b/src/Compiler/xlf/FSComp.txt.fr.xlf @@ -1039,7 +1039,7 @@ This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. - This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. + Cet enregistrement anonyme ne correspond pas exactement à la forme attendue. Ajoutez les champs manquants {0} et supprimez les champs supplémentaires {1}. @@ -8514,7 +8514,7 @@ Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager - La clé '{0}' du gestionnaire de packages n'était pas inscrite dans {1}. L'inscription a été effectuée : {2}. Pour plus d'information sur les extensions, référez-vous à : https://aka.ms/dotnetdepmanager + Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager diff --git a/src/Compiler/xlf/FSComp.txt.it.xlf b/src/Compiler/xlf/FSComp.txt.it.xlf index 4dc3f504fbe..d6e8099ad66 100644 --- a/src/Compiler/xlf/FSComp.txt.it.xlf +++ b/src/Compiler/xlf/FSComp.txt.it.xlf @@ -1039,7 +1039,7 @@ This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. - This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. + Questo record anonimo non corrisponde esattamente alla forma prevista. Aggiungere i campi mancanti {0} e rimuovere i campi aggiuntivi {1}. @@ -8514,7 +8514,7 @@ Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager - La chiave di gestione pacchetti '{0}' non è stata registrata in {1}. Attualmente registrata: {2} + Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager diff --git a/src/Compiler/xlf/FSComp.txt.ja.xlf b/src/Compiler/xlf/FSComp.txt.ja.xlf index 0d49bf80bf6..3d5513d0785 100644 --- a/src/Compiler/xlf/FSComp.txt.ja.xlf +++ b/src/Compiler/xlf/FSComp.txt.ja.xlf @@ -1039,7 +1039,7 @@ This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. - This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. + この匿名レコードは、予期された形状と完全には一致していません。不足しているフィールド {0} を追加し、不要なフィールド {1} を削除してください。 @@ -8514,7 +8514,7 @@ Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager - パッケージ マネージャー キー '{0}' は {1} に登録されていませんでした。現在登録済み: {2} + Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager diff --git a/src/Compiler/xlf/FSComp.txt.ko.xlf b/src/Compiler/xlf/FSComp.txt.ko.xlf index 08bf2c7ff53..30ebfea1951 100644 --- a/src/Compiler/xlf/FSComp.txt.ko.xlf +++ b/src/Compiler/xlf/FSComp.txt.ko.xlf @@ -1039,7 +1039,7 @@ This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. - This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. + 이 익명 레코드는 필요한 도형과 정확하게 일치하지 않습니다. 누락된 필드 {0}을(를) 추가하고 추가 필드 {1}을(를) 제거하세요. @@ -8514,7 +8514,7 @@ Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager - 패키지 관리자 키 '{0}'이(가) {1}에 등록되지 않았습니다. 현재 {2}이(가) 등록되었습니다. + Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager diff --git a/src/Compiler/xlf/FSComp.txt.pl.xlf b/src/Compiler/xlf/FSComp.txt.pl.xlf index e402993738a..f98540d7d5e 100644 --- a/src/Compiler/xlf/FSComp.txt.pl.xlf +++ b/src/Compiler/xlf/FSComp.txt.pl.xlf @@ -1039,7 +1039,7 @@ This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. - This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. + Ten rekord anonimowy nie jest dokładnie zgodny z oczekiwanym kształtem. Dodaj brakujące pola {0} i usuń dodatkowe pola {1}. @@ -8514,7 +8514,7 @@ Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager - Klucz menedżera pakietów „{0}” nie został zarejestrowany w elemencie {1}. Obecnie zarejestrowane: {2} + Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager diff --git a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf index 6620808f2b0..14e986f91d1 100644 --- a/src/Compiler/xlf/FSComp.txt.pt-BR.xlf +++ b/src/Compiler/xlf/FSComp.txt.pt-BR.xlf @@ -1039,7 +1039,7 @@ This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. - This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. + Este registro anônimo não corresponde exatamente à forma esperada. Adicione os campos ausentes {0} e remova os campos extras {1}. @@ -8514,7 +8514,7 @@ Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager - A chave '{0}' do gerenciador de pacotes não foi registrada em {1}. Registrada no momento: {2} + Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager diff --git a/src/Compiler/xlf/FSComp.txt.ru.xlf b/src/Compiler/xlf/FSComp.txt.ru.xlf index df9a11518de..aca49469f29 100644 --- a/src/Compiler/xlf/FSComp.txt.ru.xlf +++ b/src/Compiler/xlf/FSComp.txt.ru.xlf @@ -1039,7 +1039,7 @@ This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. - This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. + Эта анонимная запись не соответствует ожидаемой форме. Добавьте недостающие поля {0} и удалите лишние поля {1}. @@ -8514,7 +8514,7 @@ Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager - Ключ "{0}" диспетчера пакетов не был зарегистрирован в {1}. Текущий зарегистрированный ключ: {2} + Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager diff --git a/src/Compiler/xlf/FSComp.txt.tr.xlf b/src/Compiler/xlf/FSComp.txt.tr.xlf index a483074a4fb..6e8ccf84cf5 100644 --- a/src/Compiler/xlf/FSComp.txt.tr.xlf +++ b/src/Compiler/xlf/FSComp.txt.tr.xlf @@ -1039,7 +1039,7 @@ This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. - This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. + Bu anonim kayıt, beklenen şekille tam olarak eşleşmiyor. Eksik {0} alanlarını ekleyin ve ek {1} alanlarını kaldırın. @@ -8514,7 +8514,7 @@ Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager - '{0}' paket yöneticisi anahtarı {1} içinde kayıtlı değil. Şu anda kayıtlı: {2} + Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf index 67dba4b0353..7b45dfb0f12 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hans.xlf @@ -1039,7 +1039,7 @@ This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. - This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. + 此匿名记录与预期的形状不完全匹配。请添加缺少的字段 {0} 并删除额外的字段 {1}。 @@ -8514,7 +8514,7 @@ Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager - 未在 {1} 中注册包管理器密钥“{0}”。当前注册: {2} + Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager diff --git a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf index 412e32a5f0c..859b8c35d25 100644 --- a/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf +++ b/src/Compiler/xlf/FSComp.txt.zh-Hant.xlf @@ -1039,7 +1039,7 @@ This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. - This anonymous record does not exactly match the expected shape. Add the missing fields {0} and remove the extra fields {1}. + 此匿名記錄與預期的圖形未完全相符。請新增缺少的欄位 {0},並移除額外的欄位 {1}。 @@ -8514,7 +8514,7 @@ Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager - 套件管理員金鑰 '{0}' 未在 {1} 中註冊。目前已註冊: {2} + Package manager key '{0}' was not registered in {1}. Currently registered: {2}. To learn more about extensions, visit: https://aka.ms/dotnetdepmanager From e6bd9fa61aac41fcd0196722d543d8f11ccbf7ac Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Fri, 11 Aug 2023 13:53:49 +0200 Subject: [PATCH 50/54] Fix tests, since attributes moved to BCL --- .../Conformance/Constraints/Unmanaged.fs | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/tests/FSharp.Compiler.ComponentTests/Conformance/Constraints/Unmanaged.fs b/tests/FSharp.Compiler.ComponentTests/Conformance/Constraints/Unmanaged.fs index ea982858d47..6b76f98c7b8 100644 --- a/tests/FSharp.Compiler.ComponentTests/Conformance/Constraints/Unmanaged.fs +++ b/tests/FSharp.Compiler.ComponentTests/Conformance/Constraints/Unmanaged.fs @@ -379,12 +379,10 @@ let _ = Test>>() .custom instance void [FSharp.Core]Microsoft.FSharp.Core.NoComparisonAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) .param type T - .custom instance void System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance [runtime]void System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) } - } """;""" -.class private auto ansi beforefieldinit System.Runtime.CompilerServices.IsUnmanagedAttribute - extends [runtime]System.Attribute"""] + } """] [] let ``IsUnmanagedAttribute Attribute is emitted for function with unmanaged constraint`` () = @@ -397,7 +395,7 @@ let _ = Test>>() testMyFunction(!!TUnmanaged x) cil managed { .param type TUnmanaged - .custom instance void System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 8 IL_0000: ldarg.0 @@ -467,7 +465,7 @@ printf "%s" (CsharpStruct.Hi()) .method public static void testMyFunction(!!TUnmanaged x) cil managed { .param type TUnmanaged - .custom instance void System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 8 IL_0000: ret From a71f7a31a4d87d0f57153cc2347ed8b95f73feb2 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Fri, 11 Aug 2023 14:44:21 +0200 Subject: [PATCH 51/54] fix --- .../Conformance/Constraints/Unmanaged.fs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/FSharp.Compiler.ComponentTests/Conformance/Constraints/Unmanaged.fs b/tests/FSharp.Compiler.ComponentTests/Conformance/Constraints/Unmanaged.fs index 6b76f98c7b8..ec0603adcc4 100644 --- a/tests/FSharp.Compiler.ComponentTests/Conformance/Constraints/Unmanaged.fs +++ b/tests/FSharp.Compiler.ComponentTests/Conformance/Constraints/Unmanaged.fs @@ -379,7 +379,7 @@ let _ = Test>>() .custom instance void [FSharp.Core]Microsoft.FSharp.Core.NoComparisonAttribute::.ctor() = ( 01 00 00 00 ) .custom instance void [FSharp.Core]Microsoft.FSharp.Core.CompilationMappingAttribute::.ctor(valuetype [FSharp.Core]Microsoft.FSharp.Core.SourceConstructFlags) = ( 01 00 03 00 00 00 00 00 ) .param type T - .custom instance [runtime]void System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) } } """] From 8c0689ae330f76ebb80d412aa1741c95eaa1b6c0 Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Fri, 11 Aug 2023 15:30:38 +0200 Subject: [PATCH 52/54] Only run tests on coreclr to unblock merge --- .../Conformance/Constraints/Unmanaged.fs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/FSharp.Compiler.ComponentTests/Conformance/Constraints/Unmanaged.fs b/tests/FSharp.Compiler.ComponentTests/Conformance/Constraints/Unmanaged.fs index ec0603adcc4..af067fda340 100644 --- a/tests/FSharp.Compiler.ComponentTests/Conformance/Constraints/Unmanaged.fs +++ b/tests/FSharp.Compiler.ComponentTests/Conformance/Constraints/Unmanaged.fs @@ -358,7 +358,7 @@ let _ = Test>>() |> withDiagnostics [ (Error 43, Line 1, Col 34, Line 1, Col 48, "The constraints 'unmanaged' and 'not struct' are inconsistent")] - [] + [] let ``Multi constraint IL test together with struct and interface constraints`` () = Fsx "[] type Test<'T when 'T: unmanaged and 'T: struct and 'T:>System.IComparable> = struct end" |> withLangVersionPreview @@ -384,7 +384,7 @@ let _ = Test>>() } """] - [] + [] let ``IsUnmanagedAttribute Attribute is emitted for function with unmanaged constraint`` () = Fsx "let testMyFunction (x: 'TUnmanaged when 'TUnmanaged : unmanaged) = struct(x,1)" |> withLangVersionPreview @@ -455,7 +455,7 @@ printf "%s" (CsharpStruct.Hi()) |> run |> verifyOutput "MultiCaseUnion" - [] + [] let ``FSharp generates modreq for CSharp to consume in preview`` () = Fsx "let testMyFunction (x: 'TUnmanaged when 'TUnmanaged : unmanaged) = ()" |> withLangVersionPreview From abc3abb9834c63c6ab93959242f18914dd09bddc Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Mon, 14 Aug 2023 16:24:14 +0200 Subject: [PATCH 53/54] Fix loading legacy projects (#15796) --- .../src/FSharp.Editor/LanguageService/LanguageService.fs | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs b/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs index 21c694f060e..94139505662 100644 --- a/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs +++ b/vsintegration/src/FSharp.Editor/LanguageService/LanguageService.fs @@ -401,6 +401,10 @@ type internal FSharpPackage() as this = SingleFileWorkspaceMap(FSharpMiscellaneousFileService(workspace, miscFilesWorkspace, projectContextFactory), rdt) |> ignore + do + LegacyProjectWorkspaceMap(solution, optionsManager, projectContextFactory) + |> ignore + } |> CancellableTask.startAsTask cancellationToken From 087f14817cdcd4e80cd8f6b2602485b7f720d7bb Mon Sep 17 00:00:00 2001 From: Vlad Zarytovskii Date: Wed, 16 Aug 2023 15:55:22 +0200 Subject: [PATCH 54/54] Fix tests for tfm net8 --- .../EmittedIL/FixedBindings/FixedBindings.fs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tests/FSharp.Compiler.ComponentTests/EmittedIL/FixedBindings/FixedBindings.fs b/tests/FSharp.Compiler.ComponentTests/EmittedIL/FixedBindings/FixedBindings.fs index 66fc5be8dc4..93ef808ce36 100644 --- a/tests/FSharp.Compiler.ComponentTests/EmittedIL/FixedBindings/FixedBindings.fs +++ b/tests/FSharp.Compiler.ComponentTests/EmittedIL/FixedBindings/FixedBindings.fs @@ -418,7 +418,7 @@ module ExtendedFixedBindings = .method public static !!a pinIt(valuetype [runtime]System.ReadOnlySpan`1 thing) cil managed { .param type a - .custom instance void System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 5 .locals init (native int V_0, @@ -525,7 +525,7 @@ module ExtendedFixedBindings = .method public static !!a pinIt(valuetype FixedBindings/ArrayElementRef`1 thing) cil managed { .param type a - .custom instance void System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 5 .locals init (native int V_0, @@ -639,7 +639,7 @@ module ExtendedFixedBindings = .method public static !!a pinIt(class FixedBindings/RefField`1 thing) cil managed { .param type a - .custom instance void System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 5 .locals init (native int V_0, @@ -677,7 +677,7 @@ module ExtendedFixedBindings = .method public static !!T pinIt(class FixedBindings/RefField`1 thing) cil managed { .param type T - .custom instance void System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) + .custom instance void [runtime]System.Runtime.CompilerServices.IsUnmanagedAttribute::.ctor() = ( 01 00 00 00 ) .maxstack 5 .locals init (native int V_0,