Skip to content

Commit 2f69126

Browse files
authored
Merge pull request #17489 from dotnet/merges/main-to-release/dev17.12
Merge main to release/dev17.12
2 parents 09b5991 + c3101ab commit 2f69126

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+2126
-146
lines changed

azure-pipelines-PR.yml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -228,6 +228,9 @@ stages:
228228

229229
- script: eng\CIBuild.cmd -compressallmetadata -configuration Release /p:FSharpLangVersion=preview
230230
env:
231+
DOTNET_DbgEnableMiniDump: 1
232+
DOTNET_DbgMiniDumpType: 3 # Triage dump, 1 for mini, 2 for Heap, 3 for triage, 4 for full. Don't use 4 unless you know what you're doing.
233+
DOTNET_DbgMiniDumpName: $(Build.SourcesDirectory)\artifacts\log\$(_configuration)\$(Build.BuildId)-%e-%p-%t.dmp
231234
NativeToolsOnMachine: true
232235
displayName: Build
233236

@@ -240,6 +243,15 @@ stages:
240243
ArtifactName: 'Windows Release build binlogs'
241244
ArtifactType: Container
242245
parallel: true
246+
- task: PublishBuildArtifacts@1
247+
displayName: Publish Dumps
248+
condition: failed()
249+
continueOnError: true
250+
inputs:
251+
PathToPublish: '$(Build.SourcesDirectory)\artifacts\log\$(_configuration)'
252+
ArtifactName: 'Windows $(_configuration) $(_testKind) process dumps'
253+
ArtifactType: Container
254+
parallel: true
243255

244256
- job: WindowsNoRealsig_testCoreclr
245257
pool:
@@ -256,6 +268,9 @@ stages:
256268

257269
- script: eng\CIBuild.cmd -compressallmetadata -buildnorealsig -testCoreclr -configuration Release
258270
env:
271+
DOTNET_DbgEnableMiniDump: 1
272+
DOTNET_DbgMiniDumpType: 3 # Triage dump, 1 for mini, 2 for Heap, 3 for triage, 4 for full. Don't use 4 unless you know what you're doing.
273+
DOTNET_DbgMiniDumpName: $(Build.SourcesDirectory)\artifacts\log\$(_configuration)\$(Build.BuildId)-%e-%p-%t.dmp
259274
NativeToolsOnMachine: true
260275
displayName: Build
261276

@@ -268,6 +283,15 @@ stages:
268283
ArtifactName: 'Windows Release build binlogs'
269284
ArtifactType: Container
270285
parallel: true
286+
- task: PublishBuildArtifacts@1
287+
displayName: Publish Dumps
288+
condition: failed()
289+
continueOnError: true
290+
inputs:
291+
PathToPublish: '$(Build.SourcesDirectory)\artifacts\log\$(_configuration)'
292+
ArtifactName: 'Windows $(_configuration) $(_testKind) process dumps'
293+
ArtifactType: Container
294+
parallel: true
271295

272296
- job: WindowsNoRealsig_testDesktop
273297
pool:
@@ -284,6 +308,9 @@ stages:
284308

285309
- script: eng\CIBuild.cmd -compressallmetadata -buildnorealsig -testDesktop -configuration Release
286310
env:
311+
DOTNET_DbgEnableMiniDump: 1
312+
DOTNET_DbgMiniDumpType: 3 # Triage dump, 1 for mini, 2 for Heap, 3 for triage, 4 for full. Don't use 4 unless you know what you're doing.
313+
DOTNET_DbgMiniDumpName: $(Build.SourcesDirectory)\artifacts\log\$(_configuration)\$(Build.BuildId)-%e-%p-%t.dmp
287314
NativeToolsOnMachine: true
288315
displayName: Build
289316

@@ -296,6 +323,15 @@ stages:
296323
ArtifactName: 'Windows Release build binlogs'
297324
ArtifactType: Container
298325
parallel: true
326+
- task: PublishBuildArtifacts@1
327+
displayName: Publish Dumps
328+
condition: failed()
329+
continueOnError: true
330+
inputs:
331+
PathToPublish: '$(Build.SourcesDirectory)\artifacts\log\$(_configuration)'
332+
ArtifactName: 'Windows $(_configuration) $(_testKind) process dumps'
333+
ArtifactType: Container
334+
parallel: true
299335

300336
- job: WindowsStrictIndentation
301337
pool:
@@ -312,6 +348,9 @@ stages:
312348

313349
- script: eng\CIBuild.cmd -compressallmetadata -configuration Release /p:AdditionalFscCmdFlags=--strict-indentation+
314350
env:
351+
DOTNET_DbgEnableMiniDump: 1
352+
DOTNET_DbgMiniDumpType: 3 # Triage dump, 1 for mini, 2 for Heap, 3 for triage, 4 for full. Don't use 4 unless you know what you're doing.
353+
DOTNET_DbgMiniDumpName: $(Build.SourcesDirectory)\artifacts\log\$(_configuration)\$(Build.BuildId)-%e-%p-%t.dmp
315354
NativeToolsOnMachine: true
316355
displayName: Build
317356

@@ -324,6 +363,15 @@ stages:
324363
ArtifactName: 'Windows Release build binlogs'
325364
ArtifactType: Container
326365
parallel: true
366+
- task: PublishBuildArtifacts@1
367+
displayName: Publish Dumps
368+
condition: failed()
369+
continueOnError: true
370+
inputs:
371+
PathToPublish: '$(Build.SourcesDirectory)\artifacts\log\$(_configuration)'
372+
ArtifactName: 'Windows $(_configuration) $(_testKind) process dumps'
373+
ArtifactType: Container
374+
parallel: true
327375

328376
- job: WindowsNoStrictIndentation
329377
pool:
@@ -336,6 +384,9 @@ stages:
336384

337385
- script: eng\CIBuild.cmd -compressallmetadata -configuration Release /p:AdditionalFscCmdFlags=--strict-indentation-
338386
env:
387+
DOTNET_DbgEnableMiniDump: 1
388+
DOTNET_DbgMiniDumpType: 3 # Triage dump, 1 for mini, 2 for Heap, 3 for triage, 4 for full. Don't use 4 unless you know what you're doing.
389+
DOTNET_DbgMiniDumpName: $(Build.SourcesDirectory)\artifacts\log\$(_configuration)\$(Build.BuildId)-%e-%p-%t.dmp
339390
NativeToolsOnMachine: true
340391
displayName: Build
341392

@@ -348,6 +399,15 @@ stages:
348399
ArtifactName: 'Windows Release build binlogs'
349400
ArtifactType: Container
350401
parallel: true
402+
- task: PublishBuildArtifacts@1
403+
displayName: Publish Dumps
404+
condition: failed()
405+
continueOnError: true
406+
inputs:
407+
PathToPublish: '$(Build.SourcesDirectory)\artifacts\log\$(_configuration)'
408+
ArtifactName: 'Windows $(_configuration) $(_testKind) process dumps'
409+
ArtifactType: Container
410+
parallel: true
351411

352412
# Windows With Compressed Metadata
353413
- job: WindowsCompressedMetadata
@@ -398,19 +458,28 @@ stages:
398458
# yes, this is miserable, but - https://github.com/dotnet/arcade/issues/13239
399459
- script: eng\CIBuild.cmd -compressallmetadata -configuration $(_configuration) -$(_testKind)
400460
env:
461+
DOTNET_DbgEnableMiniDump: 1
462+
DOTNET_DbgMiniDumpType: 3 # Triage dump, 1 for mini, 2 for Heap, 3 for triage, 4 for full. Don't use 4 unless you know what you're doing.
463+
DOTNET_DbgMiniDumpName: $(Build.SourcesDirectory)\artifacts\log\$(_configuration)\$(Build.BuildId)-%e-%p-%t.dmp
401464
NativeToolsOnMachine: true
402465
displayName: Build / Test
403466
condition: and( ne(variables['_testKind'], 'testIntegration'), ne(variables['System.JobName'], 'transparent_compiler_release') )
404467

405468
- script: eng\CIBuild.cmd -compressallmetadata -configuration $(_configuration) -$(_testKind)
406469
env:
470+
DOTNET_DbgEnableMiniDump: 1
471+
DOTNET_DbgMiniDumpType: 3 # Triage dump, 1 for mini, 2 for Heap, 3 for triage, 4 for full. Don't use 4 unless you know what you're doing.
472+
DOTNET_DbgMiniDumpName: $(Build.SourcesDirectory)\artifacts\log\$(_configuration)\$(Build.BuildId)-%e-%p-%t.dmp
407473
TEST_TRANSPARENT_COMPILER: 1
408474
NativeToolsOnMachine: true
409475
displayName: Build / Test Transparent Compiler
410476
condition: and( eq(variables['System.JobName'], 'transparent_compiler_release'), ne(variables['_testKind'], 'testIntegration') )
411477

412478
- script: eng\CIBuild.cmd -compressallmetadata -configuration $(_configuration) -$(_testKind)
413479
env:
480+
DOTNET_DbgEnableMiniDump: 1
481+
DOTNET_DbgMiniDumpType: 3 # Triage dump, 1 for mini, 2 for Heap, 3 for triage, 4 for full. Don't use 4 unless you know what you're doing.
482+
DOTNET_DbgMiniDumpName: $(Build.SourcesDirectory)\artifacts\log\$(_configuration)\$(Build.BuildId)-%e-%p-%t.dmp
414483
NativeToolsOnMachine: true
415484
displayName: Build / Integration Test
416485
continueOnError: true
@@ -433,6 +502,15 @@ stages:
433502
ArtifactName: 'Windows $(_configuration) $(_testKind) test binlogs'
434503
ArtifactType: Container
435504
parallel: true
505+
- task: PublishBuildArtifacts@1
506+
displayName: Publish Dumps
507+
condition: failed()
508+
continueOnError: true
509+
inputs:
510+
PathToPublish: '$(Build.SourcesDirectory)\artifacts\log\$(_configuration)'
511+
ArtifactName: 'Windows $(_configuration) $(_testKind) process dumps'
512+
ArtifactType: Container
513+
parallel: true
436514
- task: PublishBuildArtifacts@1
437515
displayName: Publish Test Logs
438516
inputs:

docs/release-notes/.FSharp.Compiler.Service/9.0.100.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,9 @@
99
### Added
1010

1111
* Support for nullable reference types ([PR #15181](https://github.com/dotnet/fsharp/pull/15181))
12+
* Parser: recover on missing union case fields (PR [#17452](https://github.com/dotnet/fsharp/pull/17452))
13+
* Parser: recover on missing union case field types (PR [#17455](https://github.com/dotnet/fsharp/pull/17455))
14+
* Sink: report function domain type ([PR #17470](https://github.com/dotnet/fsharp/pull/17470))
1215

1316
### Changed
1417

src/Compiler/Checking/Expressions/CheckExpressions.fs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5755,8 +5755,8 @@ and TcExprUndelayed (cenv: cenv) (overallTy: OverallTy) env tpenv (synExpr: SynE
57555755
| SynExpr.Match (spMatch, synInputExpr, synClauses, _m, _trivia) ->
57565756
TcExprMatch cenv overallTy env tpenv synInputExpr spMatch synClauses
57575757

5758-
| SynExpr.MatchLambda (isExnMatch, mArg, clauses, spMatch, m) ->
5759-
TcExprMatchLambda cenv overallTy env tpenv (isExnMatch, mArg, clauses, spMatch, m)
5758+
| SynExpr.MatchLambda (isExnMatch, mFunction, clauses, spMatch, m) ->
5759+
TcExprMatchLambda cenv overallTy env tpenv (isExnMatch, mFunction, clauses, spMatch, m)
57605760

57615761
| SynExpr.Assert (x, m) ->
57625762
TcNonControlFlowExpr env <| fun env ->
@@ -6009,12 +6009,13 @@ and TcExprMatch (cenv: cenv) overallTy env tpenv synInputExpr spMatch synClauses
60096009
// <@ function x -> (x: int) @>
60106010
// is
60116011
// Lambda (_arg2, Let (x, _arg2, x))
6012-
and TcExprMatchLambda (cenv: cenv) overallTy env tpenv (isExnMatch, mArg, clauses, spMatch, m) =
6012+
and TcExprMatchLambda (cenv: cenv) overallTy env tpenv (isExnMatch, mFunction, clauses, spMatch, m) =
60136013
let domainTy, resultTy = UnifyFunctionType None cenv env.DisplayEnv m overallTy.Commit
6014-
let idv1, idve1 = mkCompGenLocal mArg (cenv.synArgNameGenerator.New()) domainTy
6014+
let idv1, idve1 = mkCompGenLocal mFunction (cenv.synArgNameGenerator.New()) domainTy
6015+
CallExprHasTypeSink cenv.tcSink (mFunction.StartRange, env.NameEnv, domainTy, env.AccessRights)
60156016
let envinner = ExitFamilyRegion env
60166017
let envinner = { envinner with eIsControlFlow = true }
6017-
let idv2, matchExpr, tpenv = TcAndPatternCompileMatchClauses m mArg (if isExnMatch then Throw else ThrowIncompleteMatchException) cenv None domainTy (MustConvertTo (false, resultTy)) envinner tpenv clauses
6018+
let idv2, matchExpr, tpenv = TcAndPatternCompileMatchClauses m mFunction (if isExnMatch then Throw else ThrowIncompleteMatchException) cenv None domainTy (MustConvertTo (false, resultTy)) envinner tpenv clauses
60186019
let overallExpr = mkMultiLambda m [idv1] ((mkLet spMatch m idv2 idve1 matchExpr), resultTy)
60196020
overallExpr, tpenv
60206021

src/Compiler/FSComp.txt

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1762,7 +1762,7 @@ featureReuseSameFieldsInStructUnions,"Share underlying fields in a [<Struct>] di
17621762
3860,chkStaticMembersOnObjectExpressions,"Object expressions cannot implement interfaces with static abstract members or declare static members."
17631763
3861,chkTailCallAttrOnNonRec,"The TailCall attribute should only be applied to recursive functions."
17641764
3862,parsStaticMemberImcompleteSyntax,"Incomplete declaration of a static construct. Use 'static let','static do','static member' or 'static val' for declaration."
1765-
3863,parsExpectingField,"Expecting record field"
1765+
3863,parsExpectingRecordField,"Expecting record field"
17661766
3864,tooManyMethodsInDotNetTypeWritingAssembly,"The type '%s' has too many methods. Found: '%d', maximum: '%d'"
17671767
3865,parsOnlySimplePatternsAreAllowedInConstructors,"Only simple patterns are allowed in primary constructors"
17681768
3866,chkStaticAbstractInterfaceMembers,"A static abstract non-virtual interface member should only be called via type parameter (for example: 'T.%s)."
@@ -1775,3 +1775,4 @@ featureParsedHashDirectiveArgumentNonString,"# directives with non-quoted string
17751775
3869,featureParsedHashDirectiveUnexpectedInteger,"Unexpected integer literal '%d'."
17761776
3869,featureParsedHashDirectiveUnexpectedIdentifier,"Unexpected identifier '%s'."
17771777
featureEmptyBodiedComputationExpressions,"Support for computation expressions with empty bodies: builder {{ }}"
1778+
3870,parsExpectingUnionCaseField,"Expecting union case field"

src/Compiler/FSharp.Compiler.Service.fsproj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -310,6 +310,7 @@
310310
<Compile Include="TypedTree\TypedTree.fs" />
311311
<Compile Include="TypedTree\TypedTreeBasics.fsi" />
312312
<Compile Include="TypedTree\TypedTreeBasics.fs" />
313+
<Compile Include="TypedTree\TcGlobals.fsi" />
313314
<Compile Include="TypedTree\TcGlobals.fs" />
314315
<Compile Include="TypedTree\TypedTreeOps.fsi" />
315316
<Compile Include="TypedTree\TypedTreeOps.fs" />

0 commit comments

Comments
 (0)