Skip to content

Commit 2c95ddd

Browse files
authored
Merge pull request #7148 from dotnet/merges/release/dev16.3-to-release/fsharp47
Merge release/dev16.3 to release/fsharp47
2 parents dc19afe + 2c75ff3 commit 2c95ddd

6 files changed

Lines changed: 43 additions & 21 deletions

File tree

eng/Version.Details.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
<ProductDependencies>
44
</ProductDependencies>
55
<ToolsetDependencies>
6-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19352.7">
6+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="1.0.0-beta.19353.19">
77
<Uri>https://github.com/dotnet/arcade</Uri>
8-
<Sha>b8c190d95371e658d95a5731f4778bd3da2fa42d</Sha>
8+
<Sha>733f8297b68dd824044a77d955e62305b9dc43d5</Sha>
99
</Dependency>
1010
</ToolsetDependencies>
1111
</Dependencies>

eng/common/sdl/execute-all-sdl-tools.ps1

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ Param(
2222
[string] $TsaCodebaseAdmin, # Optional: only needed if TsaOnboard is true; the aliases which are admins of the TSA codebase (e.g. DOMAIN\alias); TSA is the automated framework used to upload test results as bugs.
2323
[string] $TsaBugAreaPath, # Optional: only needed if TsaOnboard is true; the area path where TSA will file bugs in AzDO; TSA is the automated framework used to upload test results as bugs.
2424
[string] $TsaIterationPath, # Optional: only needed if TsaOnboard is true; the iteration path where TSA will file bugs in AzDO; TSA is the automated framework used to upload test results as bugs.
25-
[string] $GuardianLoggerLevel="Standard" # Optional: the logger level for the Guardian CLI; options are Trace, Verbose, Standard, Warning, and Error
25+
[string] $GuardianLoggerLevel="Standard", # Optional: the logger level for the Guardian CLI; options are Trace, Verbose, Standard, Warning, and Error
26+
[string[]] $CrScanAdditionalRunConfigParams, # Optional: Additional Params to custom build a CredScan run config in the format @("xyz:abc","sdf:1")
27+
[string[]] $PoliCheckAdditionalRunConfigParams # Optional: Additional Params to custom build a Policheck run config in the format @("xyz:abc","sdf:1")
2628
)
2729

2830
$ErrorActionPreference = "Stop"
@@ -69,10 +71,10 @@ if ($TsaOnboard) {
6971
}
7072

7173
if ($ArtifactToolsList -and $ArtifactToolsList.Count -gt 0) {
72-
& $(Join-Path $PSScriptRoot "run-sdl.ps1") -GuardianCliLocation $guardianCliLocation -WorkingDirectory $ArtifactsDirectory -TargetDirectory $ArtifactsDirectory -GdnFolder $gdnFolder -ToolsList $ArtifactToolsList -AzureDevOpsAccessToken $AzureDevOpsAccessToken -UpdateBaseline $UpdateBaseline -GuardianLoggerLevel $GuardianLoggerLevel
74+
& $(Join-Path $PSScriptRoot "run-sdl.ps1") -GuardianCliLocation $guardianCliLocation -WorkingDirectory $ArtifactsDirectory -TargetDirectory $ArtifactsDirectory -GdnFolder $gdnFolder -ToolsList $ArtifactToolsList -AzureDevOpsAccessToken $AzureDevOpsAccessToken -UpdateBaseline $UpdateBaseline -GuardianLoggerLevel $GuardianLoggerLevel -CrScanAdditionalRunConfigParams $CrScanAdditionalRunConfigParams -PoliCheckAdditionalRunConfigParams $PoliCheckAdditionalRunConfigParams
7375
}
7476
if ($SourceToolsList -and $SourceToolsList.Count -gt 0) {
75-
& $(Join-Path $PSScriptRoot "run-sdl.ps1") -GuardianCliLocation $guardianCliLocation -WorkingDirectory $ArtifactsDirectory -TargetDirectory $SourceDirectory -GdnFolder $gdnFolder -ToolsList $SourceToolsList -AzureDevOpsAccessToken $AzureDevOpsAccessToken -UpdateBaseline $UpdateBaseline -GuardianLoggerLevel $GuardianLoggerLevel
77+
& $(Join-Path $PSScriptRoot "run-sdl.ps1") -GuardianCliLocation $guardianCliLocation -WorkingDirectory $ArtifactsDirectory -TargetDirectory $SourceDirectory -GdnFolder $gdnFolder -ToolsList $SourceToolsList -AzureDevOpsAccessToken $AzureDevOpsAccessToken -UpdateBaseline $UpdateBaseline -GuardianLoggerLevel $GuardianLoggerLevel -CrScanAdditionalRunConfigParams $CrScanAdditionalRunConfigParams -PoliCheckAdditionalRunConfigParams $PoliCheckAdditionalRunConfigParams
7678
}
7779

7880
if ($UpdateBaseline) {

eng/common/sdl/run-sdl.ps1

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ Param(
55
[string] $GdnFolder,
66
[string[]] $ToolsList,
77
[string] $UpdateBaseline,
8-
[string] $GuardianLoggerLevel="Standard"
8+
[string] $GuardianLoggerLevel="Standard",
9+
[string[]] $CrScanAdditionalRunConfigParams,
10+
[string[]] $PoliCheckAdditionalRunConfigParams
911
)
1012

1113
$ErrorActionPreference = "Stop"
@@ -29,17 +31,17 @@ foreach ($tool in $ToolsList) {
2931
Write-Host $tool
3032
# We have to manually configure tools that run on source to look at the source directory only
3133
if ($tool -eq "credscan") {
32-
Write-Host "$GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args `" TargetDirectory : $TargetDirectory `""
33-
& $GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args " TargetDirectory : $TargetDirectory "
34+
Write-Host "$GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args `" TargetDirectory : $TargetDirectory `" $(If ($CrScanAdditionalRunConfigParams) {$CrScanAdditionalRunConfigParams})"
35+
& $GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args " TargetDirectory : $TargetDirectory " $(If ($CrScanAdditionalRunConfigParams) {$CrScanAdditionalRunConfigParams})
3436
if ($LASTEXITCODE -ne 0) {
3537
Write-Host "Guardian configure for $tool failed with exit code $LASTEXITCODE."
3638
exit $LASTEXITCODE
3739
}
3840
$config = $True
3941
}
4042
if ($tool -eq "policheck") {
41-
Write-Host "$GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args `" Target : $TargetDirectory `""
42-
& $GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args " Target : $TargetDirectory "
43+
Write-Host "$GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args `" Target : $TargetDirectory `" $(If ($PoliCheckAdditionalRunConfigParams) {$PoliCheckAdditionalRunConfigParams})"
44+
& $GuardianCliLocation configure --working-directory $WorkingDirectory --tool $tool --output-path $gdnConfigFile --logger-level $GuardianLoggerLevel --noninteractive --force --args " Target : $TargetDirectory " $(If ($PoliCheckAdditionalRunConfigParams) {$PoliCheckAdditionalRunConfigParams})
4345
if ($LASTEXITCODE -ne 0) {
4446
Write-Host "Guardian configure for $tool failed with exit code $LASTEXITCODE."
4547
exit $LASTEXITCODE

global.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
}
1111
},
1212
"msbuild-sdks": {
13-
"Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19352.7",
13+
"Microsoft.DotNet.Arcade.Sdk": "1.0.0-beta.19353.19",
1414
"Microsoft.DotNet.Helix.Sdk": "2.0.0-beta.19069.2"
1515
}
1616
}

src/fsharp/service/service.fs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -424,6 +424,12 @@ type BackgroundCompiler(legacyReferenceResolver, projectCacheSize, keepAssemblyC
424424
return res
425425
}
426426

427+
member bc.ParseFileNoCache(filename, sourceText, options, userOpName) =
428+
async {
429+
let parseErrors, parseTreeOpt, anyErrors = ParseAndCheckFile.parseFile(sourceText, filename, options, userOpName, false)
430+
return FSharpParseFileResults(parseErrors, parseTreeOpt, anyErrors, options.SourceFiles)
431+
}
432+
427433
/// Fetch the parse information from the background compiler (which checks w.r.t. the FileSystem API)
428434
member __.GetBackgroundParseResultsForFileInProject(filename, options, userOpName) =
429435
reactor.EnqueueAndAwaitOpAsync(userOpName, "GetBackgroundParseResultsForFileInProject ", filename, fun ctok ->
@@ -962,6 +968,11 @@ type FSharpChecker(legacyReferenceResolver,
962968
ic.CheckMaxMemoryReached()
963969
backgroundCompiler.ParseFile(filename, sourceText, options, userOpName)
964970

971+
member ic.ParseFileNoCache(filename, sourceText, options, ?userOpName) =
972+
let userOpName = defaultArg userOpName "Unknown"
973+
ic.CheckMaxMemoryReached()
974+
backgroundCompiler.ParseFileNoCache(filename, sourceText, options, userOpName)
975+
965976
member ic.ParseFileInProject(filename, source: string, options, ?userOpName: string) =
966977
let userOpName = defaultArg userOpName "Unknown"
967978
let parsingOptions, _ = ic.GetParsingOptionsFromProjectOptions(options)

src/fsharp/service/service.fsi

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -103,25 +103,32 @@ type public FSharpChecker =
103103
member MatchBraces: filename: string * source: string * options: FSharpProjectOptions * ?userOpName: string -> Async<(range * range)[]>
104104

105105
/// <summary>
106-
/// <para>Parse a source code file, returning a handle that can be used for obtaining navigation bar information
107-
/// To get the full information, call 'CheckFileInProject' method on the result</para>
106+
/// Parses a source code for a file and caches the results. Returns an AST that can be traversed for various features.
108107
/// </summary>
109108
///
110-
/// <param name="filename">The filename for the file.</param>
111-
/// <param name="sourceText">The full source for the file.</param>
109+
/// <param name="filename">The path for the file. The file name is used as a module name for implicit top level modules (e.g. in scripts).</param>
110+
/// <param name="sourceText">The source to be parsed.</param>
112111
/// <param name="options">Parsing options for the project or script.</param>
113112
/// <param name="userOpName">An optional string used for tracing compiler operations associated with this request.</param>
114113
member ParseFile: filename: string * sourceText: ISourceText * options: FSharpParsingOptions * ?userOpName: string -> Async<FSharpParseFileResults>
115114

116115
/// <summary>
117-
/// <para>Parse a source code file, returning a handle that can be used for obtaining navigation bar information
118-
/// To get the full information, call 'CheckFileInProject' method on the result</para>
119-
/// <para>All files except the one being checked are read from the FileSystem API</para>
116+
/// Parses a source code for a file. Returns an AST that can be traversed for various features.
120117
/// </summary>
121118
///
122-
/// <param name="filename">The filename for the file.</param>
123-
/// <param name="source">The full source for the file.</param>
124-
/// <param name="options">The options for the project or script, used to determine active --define conditionals and other options relevant to parsing.</param>
119+
/// <param name="filename">The path for the file. The file name is also as a module name for implicit top level modules (e.g. in scripts).</param>
120+
/// <param name="sourceText">The source to be parsed.</param>
121+
/// <param name="options">Parsing options for the project or script.</param>
122+
/// <param name="userOpName">An optional string used for tracing compiler operations associated with this request.</param>
123+
member ParseFileNoCache: filename: string * sourceText: ISourceText * options: FSharpParsingOptions * ?userOpName: string -> Async<FSharpParseFileResults>
124+
125+
/// <summary>
126+
/// Parses a source code for a file. Returns an AST that can be traversed for various features.
127+
/// </summary>
128+
///
129+
/// <param name="filename">The path for the file. The file name is also as a module name for implicit top level modules (e.g. in scripts).</param>
130+
/// <param name="sourceText">The source to be parsed.</param>
131+
/// <param name="options">Parsing options for the project or script.</param>
125132
/// <param name="userOpName">An optional string used for tracing compiler operations associated with this request.</param>
126133
[<Obsolete("Please call checker.ParseFile instead. To do this, you must also pass FSharpParsingOptions instead of FSharpProjectOptions. If necessary generate FSharpParsingOptions from FSharpProjectOptions by calling checker.GetParsingOptionsFromProjectOptions(options)")>]
127134
member ParseFileInProject: filename: string * source: string * options: FSharpProjectOptions * ?userOpName: string -> Async<FSharpParseFileResults>

0 commit comments

Comments
 (0)