Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
ded0349
run type provider tests in sequence (#18200)
majocha Jan 6, 2025
6ce0691
Improve directory attribute refactor - Break up PR #18161 - Part 1 (…
KevinRansom Jan 7, 2025
73b8cbb
src/Compiler/TypedTree/TypedTreePickle.fs and refactored. (#18203)
progressive-galib Jan 7, 2025
a310d1d
Improve directory attribute refactor - Break up PR #18161 - Part 2 (#…
KevinRansom Jan 8, 2025
7c8705f
Merge branch 'main' into merges/release/dev17.13-to-main
psfinaki Jan 8, 2025
26f710b
Even more tests (#18197)
KevinRansom Jan 8, 2025
23bb605
remove unnecessary overrides (#18208)
majocha Jan 8, 2025
9ac324d
Show obsolete warnings/errors when used with unit of measure (#18182)
edgarfgp Jan 9, 2025
88463f8
Merge pull request #18214 from dotnet/merges/release/dev17.13-to-main
0101 Jan 9, 2025
77e7e08
Versioning for 17.14 and 9.0.300 (#18222)
vzarytovskii Jan 9, 2025
b204f87
Fix AsyncLazy cancellation (#18211)
majocha Jan 9, 2025
dfffae6
OpenTelemetry instrumentation for xUnit tests (#18230)
majocha Jan 13, 2025
ec2b3d9
Make nullness equivalent warning message clearer. (#18172)
isaacabraham Jan 13, 2025
9420232
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] Jan 13, 2025
05362a8
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Jan 13, 2025
c350a41
Fix `fsi` auto-loading of script file inside NuGet package. (#18177)
teo-tsirpanis Jan 13, 2025
9f360ed
Fix #17797 -- Realsig+ generates nested closures with incorrect Gener…
KevinRansom Jan 14, 2025
b2f2065
"#if" directive around nullness removed fromsrc/Compiler/DependencyMa…
progressive-galib Jan 14, 2025
9b34544
Enable OpenTelemetry for Desktop target in xUnit tests (#18233)
majocha Jan 15, 2025
c73b216
Update dependencies from https://github.com/dotnet/arcade build 20250…
dotnet-maestro[bot] Jan 16, 2025
8473ce6
Set Cancellable.token from async computation (#18238)
majocha Jan 16, 2025
7c598f4
Simplify Dependencies a tad (#18236)
KevinRansom Jan 16, 2025
4fcf1a7
Update dependencies from https://github.com/dotnet/source-build-refer…
dotnet-maestro[bot] Jan 17, 2025
a4aacd7
Merge branch 'release/dev17.14' into merges/main-to-release/dev17.14
psfinaki Jan 20, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
3 changes: 3 additions & 0 deletions .fantomasignore
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,9 @@ src/Compiler/Checking/SignatureConformance.fs
src/Compiler/Checking/TypeHierarchy.fs
src/Compiler/Checking/TypeRelations.fs

# nullness-related problems
src/Compiler/DependencyManager/DependencyProvider.fs

# Incorrectly formatted: https://github.com/dotnet/fsharp/pull/14645/commits/49443a67ea8a17670c8a7c80c8bdf91f82231e91 or https://github.com/fsprojects/fantomas/issues/2733
# This CompilerImports.fs behavior is not fixed yet, following up in https://github.com/fsprojects/fantomas/issues/2733
src/Compiler/Driver/CompilerImports.fs
Expand Down
7 changes: 6 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -129,4 +129,9 @@ tests/FSharp.Compiler.Service.Tests/FSharp.CompilerService.SurfaceArea.netstanda
/tests/AheadOfTime/Trimming/output.txt
*.svclog
micro.exe
positive.exe
positive.exe
/tests/FSharp.Compiler.ComponentTests/FSharpChecker/StandardError.txt
/tests/FSharp.Compiler.ComponentTests/FSharpChecker/StandardOutput.txt

# ilverify baseline result files
*.bsl.actual
27 changes: 27 additions & 0 deletions DEVGUIDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -204,6 +204,33 @@ Linux/macOS:
export TEST_UPDATE_BSL=1
```

## Retain Test run built artifacts

When investigating tests issues it is sometimes useful to examine the artifacts built when running tests. Those built using the newer test framework are usually,
built in the %TEMP%\FSharp.Test.Utilities subdirectory.

To tell the test framework to not cleanup these files use the: FSHARP_RETAIN_TESTBUILDS environment variable

Windows:

CMD:

```shell
set FSHARP_RETAIN_TESTBUILDS=1
```

PowerShell:

```shell
$env:FSHARP_RETAIN_TESTBUILDS=1
```

Linux/macOS:

```shell
export FSHARP_RETAIN_TESTBUILDS=1
```

Next, run a build script build (debug or release, desktop or coreclr, depending which baselines you need to update), and test as described [above](#Testing-from-the-command-line). For example:

`./Build.cmd -c Release -testCoreClr` to update Release CoreCLR baselines.
Expand Down
6 changes: 5 additions & 1 deletion docs/release-notes/.FSharp.Compiler.Service/9.0.200.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
### Fixed

* Fix Realsig+ generates nested closures with incorrect Generic ([Issue #17797](https://github.com/dotnet/fsharp/issues/17797), [PR #17877](https://github.com/dotnet/fsharp/pull/17877))
* Fix missing TailCall warning in Sequential in use scope ([PR #17927](https://github.com/dotnet/fsharp/pull/17927))
* Fix false negatives for passing null to "obj" arguments. Only "obj | null" can now subsume any type ([PR #17757](https://github.com/dotnet/fsharp/pull/17757))
* Fix internal error when calling 'AddSingleton' and other overloads only differing in generic arity ([PR #17804](https://github.com/dotnet/fsharp/pull/17804))
Expand All @@ -21,6 +22,8 @@
* Completion: fix qualified completion in sequence expressions [PR #18111](https://github.com/dotnet/fsharp/pull/18111)
* Symbols: try to use ValReprInfoForDisplay in Mfv.CurriedParameterGroups ([PR #18124](https://github.com/dotnet/fsharp/pull/18124))
* Shim/file system: fix leaks of the shim [PR #18144](https://github.com/dotnet/fsharp/pull/18144)
* fsi: fix auto-loading of script file inside NuGet package ([PR #18177](https://github.com/dotnet/fsharp/pull/18177))
* Fix for `Obsolete` attribute warning/error not taken into account when used with a unit of measure [PR #18182](https://github.com/dotnet/fsharp/pull/18182)

### Added

Expand Down Expand Up @@ -52,7 +55,8 @@
* Better ranges for #nowarn error reporting; bring back #nowarn warnings for --langVersion:80; add warnings under feature flag ([PR #17871](https://github.com/dotnet/fsharp/pull/17871))
* CheckAndThrow can be invoked only from within Cancellable context ([PR #18037](https://github.com/dotnet/fsharp/pull/18037))
* Make ILTypeDef base type calculation lazy. ([PR #18005](https://github.com/dotnet/fsharp/pull/18005))
* Removed redundant hash directives around nullness syntax ([Issue #18601](https://github.com/dotnet/fsharp/issues/18061), [PR #18203](https://github.com/dotnet/fsharp/pull/18203), [PR #18207](https://github.com/dotnet/fsharp/pull/18207))

### Breaking Changes

* Aliasing `StructAttribute` will now produce a warning (part of [Language suggestion #1136](https://github.com/fsharp/fslang-suggestions/issues/1136), [PR #18098](https://github.com/dotnet/fsharp/pull/18098))
* Aliasing `StructAttribute` will now produce a warning (part of [Language suggestion #1136](https://github.com/fsharp/fslang-suggestions/issues/1136), [PR #18098](https://github.com/dotnet/fsharp/pull/18098))
13 changes: 13 additions & 0 deletions docs/release-notes/.FSharp.Compiler.Service/9.0.300.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
### Fixed

* Fix Realsig+ generates nested closures with incorrect Generic ([Issue #17797](https://github.com/dotnet/fsharp/issues/17797), [PR #17877](https://github.com/dotnet/fsharp/pull/17877))
* Set `Cancellable.token` from async computation ([Issue #18235](https://github.com/dotnet/fsharp/issues/18235), [PR #18238](https://github.com/dotnet/fsharp/pull/18238))

### Added


### Changed


### Breaking Changes

12 changes: 6 additions & 6 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Dependencies>
<ProductDependencies>
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.24619.1">
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.25066.1">
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
<Sha>e2b1d16fd66540b3a5813ec0ac1fd166688c3e0a</Sha>
<Sha>93a3395781d30f69201367371c28cfc5005c0264</Sha>
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
</Dependency>
<!-- Intermediate is necessary for source build. -->
Expand Down Expand Up @@ -42,14 +42,14 @@
</Dependency>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24623.3">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.25065.2">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>e0e05154656254a735ebf19ffa5a37a8b915039b</Sha>
<Sha>c4bbc67763bf0c5a868862df874079380e647d61</Sha>
</Dependency>
<!-- Intermediate is necessary for source build. -->
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.24623.3">
<Dependency Name="Microsoft.SourceBuild.Intermediate.arcade" Version="9.0.0-beta.25065.2">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>e0e05154656254a735ebf19ffa5a37a8b915039b</Sha>
<Sha>c4bbc67763bf0c5a868862df874079380e647d61</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency>
<Dependency Name="optimization.windows_nt-x64.MIBC.Runtime" Version="1.0.0-prerelease.24462.2">
Expand Down
1 change: 0 additions & 1 deletion eng/Versions.props
Original file line number Diff line number Diff line change
Expand Up @@ -193,7 +193,6 @@
<XUnitVersion>2.9.0</XUnitVersion>
<XUnitRunnerVersion>2.8.2</XUnitRunnerVersion>
<XunitXmlTestLoggerVersion>3.1.17</XunitXmlTestLoggerVersion>
<FluentAssertionsVersion>5.10.3</FluentAssertionsVersion>
<HumanizerCoreVersion>2.2.0</HumanizerCoreVersion>
<!-- -->
<!-- MIBC profile packages -->
Expand Down
2 changes: 1 addition & 1 deletion eng/common/template-guidance.md
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ extends:

Note: Multiple outputs are ONLY applicable to 1ES PT publishing (only usable when referencing `templates-official`).

# Development notes
## Development notes

**Folder / file structure**

Expand Down
6 changes: 3 additions & 3 deletions global.json
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
{
"sdk": {
"version": "9.0.100",
"version": "9.0.102",
"allowPrerelease": true
},
"tools": {
"dotnet": "9.0.100",
"dotnet": "9.0.102",
"vs": {
"version": "17.8",
"components": [
Expand All @@ -17,7 +17,7 @@
"perl": "5.38.2.2"
},
"msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24623.3",
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.25065.2",
"Microsoft.DotNet.Helix.Sdk": "8.0.0-beta.23255.2"
}
}
22 changes: 21 additions & 1 deletion src/Compiler/Checking/AttributeChecking.fs
Original file line number Diff line number Diff line change
Expand Up @@ -417,7 +417,27 @@ let CheckEntityAttributes g (tcref: TyconRef) m =
CheckFSharpAttributes g tcref.Attribs m

let CheckILEventAttributes g (tcref: TyconRef) cattrs m =
CheckILAttributes g (isByrefLikeTyconRef g m tcref) cattrs m
CheckILAttributes g (isByrefLikeTyconRef g m tcref) cattrs m

let CheckUnitOfMeasureAttributes g (measure: Measure) =
let checkAttribs tm m =
let attribs =
ListMeasureConOccsWithNonZeroExponents g true tm
|> List.map fst
|> List.map(_.Attribs)
|> List.concat

CheckFSharpAttributes g attribs m |> CommitOperationResult

match measure with
| Measure.Const(range = m) -> checkAttribs measure m
| Measure.Inv ms -> checkAttribs measure ms.Range
| Measure.One(m) -> checkAttribs measure m
| Measure.RationalPower(measure = ms1) -> checkAttribs measure ms1.Range
| Measure.Prod(measure1= ms1; measure2= ms2) ->
checkAttribs ms1 ms1.Range
checkAttribs ms2 ms2.Range
| Measure.Var(typar) -> checkAttribs measure typar.Range

/// Check the attributes associated with a method, returning warnings and errors as data.
let CheckMethInfoAttributes g m tyargsOpt (minfo: MethInfo) =
Expand Down
2 changes: 2 additions & 0 deletions src/Compiler/Checking/AttributeChecking.fsi
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,8 @@ val CheckEntityAttributes: g: TcGlobals -> tcref: TyconRef -> m: range -> Operat

val CheckUnionCaseAttributes: g: TcGlobals -> x: UnionCaseRef -> m: range -> OperationResult<unit>

val CheckUnitOfMeasureAttributes: g: TcGlobals -> measure: Measure -> unit

val CheckRecdFieldAttributes: g: TcGlobals -> x: RecdFieldRef -> m: range -> OperationResult<unit>

val CheckValAttributes: g: TcGlobals -> x: ValRef -> m: range -> OperationResult<unit>
Expand Down
13 changes: 10 additions & 3 deletions src/Compiler/Checking/CheckDeclarations.fs
Original file line number Diff line number Diff line change
Expand Up @@ -3241,6 +3241,13 @@ module EstablishTypeDefinitionCores =
warning(Error(FSComp.SR.chkAttributeAliased(attrib.TypeRef.FullName), tycon.Id.idRange))
| _ -> ()

// Check for attributes in unit-of-measure declarations
// [<Measure>] type x = 1<s>
// ^
match stripTyEqns g ty with
| TType_measure tm -> CheckUnitOfMeasureAttributes g tm
| _ -> ()

checkAttributeAliased ty tycon g.attrib_AutoOpenAttribute
checkAttributeAliased ty tycon g.attrib_StructAttribute

Expand Down Expand Up @@ -3807,11 +3814,11 @@ module EstablishTypeDefinitionCores =

and accInMeasure measureTy acc =
match stripUnitEqns measureTy with
| Measure.Const tcref when ListSet.contains (===) tcref.Deref tycons ->
| Measure.Const(tyconRef= tcref) when ListSet.contains (===) tcref.Deref tycons ->
(tycon, tcref.Deref) :: acc
| Measure.Const tcref when tcref.IsTypeAbbrev ->
| Measure.Const(tyconRef= tcref) when tcref.IsTypeAbbrev ->
accInMeasure (reduceTyconRefAbbrevMeasureable tcref) acc
| Measure.Prod (ms1, ms2) -> accInMeasure ms1 (accInMeasure ms2 acc)
| Measure.Prod(measure1= ms1; measure2= ms2) -> accInMeasure ms1 (accInMeasure ms2 acc)
| Measure.Inv invTy -> accInMeasure invTy acc
| _ -> acc

Expand Down
2 changes: 1 addition & 1 deletion src/Compiler/Checking/CheckPatterns.fs
Original file line number Diff line number Diff line change
Expand Up @@ -803,7 +803,7 @@ and TcPatLongIdentLiteral warnOnUpper (cenv: cenv) env vFlags patEnv ty (mLongId
match vref.LiteralValue with
| None -> error (Error(FSComp.SR.tcNonLiteralCannotBeUsedInPattern(), m))
| Some lit ->
let _, _, _, vexpty, _, _ = TcVal true cenv env tpenv vref None None mLongId
let _, _, _, vexpty, _, _ = TcVal cenv env tpenv vref None None mLongId
CheckValAccessible mLongId env.AccessRights vref
CheckFSharpAttributes g vref.Attribs mLongId |> CommitOperationResult
CheckNoArgsForLiteral args m
Expand Down
Loading
Loading