未验证 提交 8fd52dc8 编写于 作者: D dotnet bot 提交者: GitHub

Merge pull request #14405 from dotnet/merges/main-to-release/dev17.5

Merge main to release/dev17.5
......@@ -8,14 +8,14 @@
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.22554.2">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.22578.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>80b6be47e1425ea90c5febffac119250043a0c92</Sha>
<Sha>3817f2b38a05c37c950715f84c95d452bcacfe52</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency>
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="8.0.0-beta.22554.2">
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="8.0.0-beta.22578.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>80b6be47e1425ea90c5febffac119250043a0c92</Sha>
<Sha>3817f2b38a05c37c950715f84c95d452bcacfe52</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>
set(CROSS_ROOTFS $ENV{ROOTFS_DIR})
# reset platform variables (e.g. cmake 3.25 sets LINUX=1)
unset(LINUX)
unset(FREEBSD)
unset(ILLUMOS)
unset(ANDROID)
unset(TIZEN)
set(TARGET_ARCH_NAME $ENV{TARGET_BUILD_ARCH})
if(EXISTS ${CROSS_ROOTFS}/bin/freebsd-version)
set(CMAKE_SYSTEM_NAME FreeBSD)
......
......@@ -132,8 +132,8 @@ if [[ -z "$CC" ]]; then
exit 1
fi
# Only lld version >= 9 can be considered stable
if [[ "$compiler" == "clang" && "$majorVersion" -ge 9 ]]; then
# Only lld version >= 9 can be considered stable. lld doesn't support s390x.
if [[ "$compiler" == "clang" && "$majorVersion" -ge 9 && "$build_arch" != "s390x" ]]; then
if "$CC" -fuse-ld=lld -Wl,--version >/dev/null 2>&1; then
LDFLAGS="-fuse-ld=lld"
fi
......
......@@ -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.3.1" -MemberType NoteProperty
$GlobalJson.tools | Add-Member -Name "xcopy-msbuild" -Value "17.4.1" -MemberType NoteProperty
}
if ($GlobalJson.tools."xcopy-msbuild".Trim() -ine "none") {
$xcopyMSBuildToolsFolder = InitializeXCopyMSBuild $GlobalJson.tools."xcopy-msbuild" -install $true
......
......@@ -34,6 +34,7 @@ jobs:
- job: Asset_Registry_Publish
dependsOn: ${{ parameters.dependsOn }}
timeoutInMinutes: 150
${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
displayName: Publish Assets
......@@ -73,12 +74,6 @@ jobs:
- task: NuGetAuthenticate@0
- task: PowerShell@2
displayName: Enable cross-org NuGet feed authentication
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/enable-cross-org-publishing.ps1
arguments: -token $(dn-bot-all-orgs-artifact-feeds-rw)
- task: PowerShell@2
displayName: Publish Build Assets
inputs:
......
variables:
- group: AzureDevOps-Artifact-Feeds-Pats
- group: DotNet-Blob-Feed
- group: DotNet-DotNetCli-Storage
- group: DotNet-MSRC-Storage
- group: Publish-Build-Assets
# Whether the build is internal or not
......
......@@ -172,12 +172,6 @@ stages:
- task: NuGetAuthenticate@0
displayName: 'Authenticate to AzDO Feeds'
- task: PowerShell@2
displayName: Enable cross-org publishing
inputs:
filePath: eng\common\enable-cross-org-publishing.ps1
arguments: -token $(dn-bot-dnceng-artifact-feeds-rw)
# Signing validation will optionally work with the buildmanifest file which is downloaded from
# Azure DevOps above.
- task: PowerShell@2
......
......@@ -365,8 +365,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.3.1view=overview
$defaultXCopyMSBuildVersion = '17.3.1'
# 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'
if (!$vsRequirements) {
if (Get-Member -InputObject $GlobalJson.tools -Name 'vs') {
......@@ -413,6 +413,7 @@ function InitializeVisualStudioMSBuild([bool]$install, [object]$vsRequirements =
if($vsMinVersion -lt $vsMinVersionReqd){
Write-Host "Using xcopy-msbuild version of $defaultXCopyMSBuildVersion since VS version $vsMinVersionStr provided in global.json is not compatible"
$xcopyMSBuildVersion = $defaultXCopyMSBuildVersion
$vsMajorVersion = $xcopyMSBuildVersion.Split('.')[0]
}
else{
# If the VS version IS compatible, look for an xcopy msbuild package
......
{
"sdk": {
"version": "7.0.100-rc.2.22477.23",
"version": "7.0.100",
"allowPrerelease": true,
"rollForward": "latestPatch"
},
"tools": {
"dotnet": "7.0.100-rc.2.22477.23",
"dotnet": "7.0.100",
"vs": {
"version": "17.2",
"components": [
"Microsoft.VisualStudio.Component.FSharp"
]
},
"xcopy-msbuild": "17.3.1"
"xcopy-msbuild": "17.4.1"
},
"native-tools": {
"perl": "5.32.1.1"
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.22554.2",
"Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.22554.2"
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.22578.1",
"Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.22578.1"
}
}
\ No newline at end of file
......@@ -67,13 +67,3 @@ val f: x: 'a -> TFirstV_1<'a>
// This should be false, because it's also in the signature file
Assert.True(symbolUse.IsPrivateToFile))
}
[<Fact>]
let ``Private function, with signature file`` () =
SyntheticProject.Create(
{ sourceFile "First" [] with ExtraSource = "let private f3 x = x + 1" }
|> addSignatureFile).Workflow {
checkFile "First" (fun (typeCheckResult: FSharpCheckFileResults) ->
let symbolUse = typeCheckResult.GetSymbolUseAtLocation(6, 14, "let private f3 x = x + 1", ["f3"]) |> Option.defaultWith (fun () -> failwith "no symbol use found")
Assert.False(symbolUse.IsPrivateToFile))
}
\ No newline at end of file
......@@ -30,11 +30,20 @@ module InlineTypeHints =
Parts = getHintParts symbol symbolUse
}
let private isSolved (symbol: FSharpMemberOrFunctionOrValue) =
if symbol.GenericParameters.Count > 0
then symbol.GenericParameters |> Seq.forall (fun p -> p.IsSolveAtCompileTime)
elif symbol.FullType.IsGenericParameter
then symbol.FullType.GenericParameter.DisplayNameCore <> "?"
else true
let isValidForHint
(parseFileResults: FSharpParseFileResults)
(symbol: FSharpMemberOrFunctionOrValue)
(symbolUse: FSharpSymbolUse) =
let isNotAnnotatedManually =
not (parseFileResults.IsTypeAnnotationGivenAtPosition symbolUse.Range.Start)
......@@ -46,6 +55,7 @@ module InlineTypeHints =
not symbol.IsConstructorThisValue
symbol.IsValue // we'll be adding other stuff gradually here
&& isSolved symbol
&& isNotAnnotatedManually
&& isNotAfterDot
&& isNotTypeAlias
......
......@@ -183,3 +183,67 @@ let zip4 (l1: 'a list) (l2: 'b list) (l3: 'c list) (l4: 'd list) =
let actual = getTypeHints document
CollectionAssert.AreEquivalent(expected, actual)
[<Test>]
let ``Hints are not shown for unfinished expressions`` () =
let code =
"""
let x
"""
let document = getFsDocument code
let result = getTypeHints document
Assert.IsEmpty(result)
[<Test>]
let ``Hints are not shown for unsolved types in _for_ expressions in collections`` () =
let code =
"""
let _ = [ for x ]
"""
let document = getFsDocument code
let result = getTypeHints document
Assert.IsEmpty(result)
[<Test>]
let ``Hints are not shown for unsolved types in _for_ expressions within computational expressions`` () =
let code =
"""
do task {
for x
do! Task.Delay 0
}
"""
let document = getFsDocument code
let result = getTypeHints document
Assert.IsEmpty(result)
[<Test>]
let ``Hints are shown for IWSAM`` () =
let code =
"""
type IAddition<'T when 'T :> IAddition<'T>> =
static abstract op_Addition: 'T * 'T -> 'T
type Number<'T when IAddition<'T>>(value: 'T) =
member _.Value with get() = value
interface IAddition<Number<'T>> with
static member op_Addition(a, b) = Number(a.Value + b.Value)
"""
let document = getFsDocument code
let expected =
[
{ Content = ": Number<'T>"; Location = (7, 36) }
{ Content = ": Number<'T>"; Location = (7, 39) }
]
let actual = getTypeHints document
CollectionAssert.AreEquivalent(expected, actual)
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册