[RFC FS-1060] Nullness checking (#15181)
* squash
* squash
* move adhoc tests and clean errors
* fix up constraint solving and adhoc testing
* remove tests
* fantomas
* skip fails
* fix tests
* fix up test baselines for change in order in checking
* update tests
* don't overwrite baselines
* fix some test failures
* skip warnings
* skip warnings
* fix warning logic
* fix tests
* fix sizes
* fix build
* fantomas and validation update
* corrections to self-use
* [WIP] [RFC FS-1060] Nullness checking (applied to codebase) (#15265)
* enablement
* enablement
* fix build
* fix build
* fantomas
* selective adoption
* Revert "[WIP] [RFC FS-1060] Nullness checking (applied to codebase) (#15265)" (#15309)
This reverts commit 559c058144129e0a42de3f66f9844c60e9c620f9.
* Fixes
* Feature/nullness - parsing of constraints (#15753)
* Feature/nullness - parsing of constraints for:
'T: not null .... syntax in Type argument specification
appType | NULL ... for specifying types
* applying changed syntax
* positive.fs updated
* positive.fs paranthesis
* fixing "parse warning Remove spaces between the type name and type parameter, e.g. "C<'T>", not "C <'T>". Type parameters must be placed directly adjacent to the type name."
* positive .bsl updated
* Please mighty fantomas
* Feature nullness metadata export (#15981)
* fix merge mistake
* fix build
* fantomas
* bsl fix
* il tests update
* fix test
* tests fixed
* fantomas
* fix tests
* trim test
* trimming test
* trim check
* now?
* IL tests
* il tests
* trim test
* trim
* one more time
* Merge main to feature/nullness (#16366)
* Fixes #16359 - correctly handle imports with 0 length public key tokens (#16363)
* Parser: recover on unfinished record decls, fix field ranges (#16357)
* Parser: recover on unfinished record decls, fix field ranges
* Fantomas
* Better diagnostic ranges for fields
* More parser tests
* Update surface area
* Fix xml doc test
* Update baselines
* Update src/Compiler/SyntaxTree/SyntaxTree.fsi
Co-authored-by: Edgar Gonzalez <edgargonzalez.info@gmail.com>
* Add MutableKeyword to SynFieldTrivia. (#11)
* Simplify
* Fantomas
---------
Co-authored-by: Edgar Gonzalez <edgargonzalez.info@gmail.com>
Co-authored-by: Florian Verdonck <florian.verdonck@outlook.com>
---------
Co-authored-by: Kevin Ransom (msft) <codecutter@hotmail.com>
Co-authored-by: Eugene Auduchinok <eugene.auduchinok@jetbrains.com>
Co-authored-by: Edgar Gonzalez <edgargonzalez.info@gmail.com>
Co-authored-by: Florian Verdonck <florian.verdonck@outlook.com>
Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com>
* syntax tree layout
* Nullness-related aggressive trimming of FSharp.Core (#16387)
* Merge main to feature/nullness (#16397)
* [main] Update dependencies from dnceng/internal/dotnet-optimization (#16150)
* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20231019.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.23515.2 -> To Version 1.0.0-prerelease.23519.5
* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20231019.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.23515.2 -> To Version 1.0.0-prerelease.23519.5
* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20231021.3
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.23515.2 -> To Version 1.0.0-prerelease.23521.3
* Update dependencies from https://dev.azure.com/dnceng/internal/_git/dotnet-optimization build 20231021.3
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.23515.2 -> To Version 1.0.0-prerelease.23521.3
---------
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
* [main] Update dependencies from dotnet/arcade (#16241)
* Update dependencies from https://github.com/dotnet/arcade build 20231106.5
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23556.5
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231106.5
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23556.5
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231106.5
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23556.5
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231106.5
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23556.5
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231106.5
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23556.5
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231106.5
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23556.5
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231106.5
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23556.5
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231114.4
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23564.4
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231130.1
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23580.1
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231130.1
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23580.1
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231130.1
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23580.1
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231130.1
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23580.1
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
* Update dependencies from https://github.com/dotnet/arcade build 20231130.1
Microsoft.DotNet.Arcade.Sdk
From Version 8.0.0-beta.23463.1 -> To Version 8.0.0-beta.23580.1
Dependency coherency updates
Microsoft.DotNet.XliffTasks
From Version 1.0.0-beta.23426.1 -> To Version 1.0.0-beta.23475.1 (parent: Microsoft.DotNet.Arcade.Sdk
---------
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Vlad Zarytovskii <vzaritovsky@hotmail.com>
Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com>
* Name resolution: don't search extension members in type abbreviations (#16390)
* Name resolution: don't search extension members in type abbreviations
* Add test
* Revert "[main] Update dependencies from dotnet/arcade (#16241)" (#16396)
This reverts commit f219a9905961c285d598dcead51936f2c2972263.
* trimmed size updated
---------
Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: Vlad Zarytovskii <vzaritovsky@hotmail.com>
Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com>
Co-authored-by: Eugene Auduchinok <eugene.auduchinok@jetbrains.com>
* Nullness interop - import of C#-emitted metadata (#16423)
* Nullness - include in QuickInfo and in general in "typeEnc" (string representation of a type) (#16555)
* failing test
* todo for IL import
* explanation added
* il meta parsing
* flags evaluation
* you shall passs
* evaluateFirstOrderNullnessAndAdvance
* import il type with nullness
* type import
* IL nullness import
fields, props, events, method args, method return types - nullness imported from IL
* test rename
* fantomas
* get stack trace on error
* split ilmethod's type
* fix crashes for Csharp style extensions
* solve coexistance of nullness and Is* properties of DUs
* updating tests
* clean tests
* fantomas
* fantomas one more time
* importing nullness for generic typars
* print failing ivals, let's see
* write even more!
* isolated failing test - combo of module rec, signature file, IVT
* another attempt
* format
* test
* hide tests
* Remove 'specialname' for DU case tester
* format
* warning as error
* update baseline netcore
* nullable errors not in desktop framework
* surface area, trimming
* surface area
* cosmetic cleanup & annotations
* Rename to ILMethParentTypeInfo
* making vMapFold tail recursive
* physical nullnessEquiv
* format
* Commenting SkipNullness usages
* Nullness work - activity module
* Remove strict generic 'T:null' import
* Null|NonNull pattern also for regular compilation
* Backported Null|NonNull active pattern
* one more time
* revert
* Show nullness in quickinfo and in general in type representations
* Merge main to feature/nullness (#16539)
Merge of main + syntax conflict resolution + semantic conflict resolution
* release notes
* Fix ILType.Array import (#16585)
* Nullness - reading+writing metadata for 'inherits' and interface implementations (#16597)
* ILGenerator test case
* Nullness :: Format string %s should allow nullable string (#16656)
* Nullness:: Unchecked.nonNull for FSharp.Core (#16654)
* Nullness :: Pattern matching with null should mark input for subsequent clauses as without null + support for matching nulls in tuples (#16659)
* Feature nullness - support overrides of nullness annotation in the imported object hierarchy (#16711)
* Improve type inference w.r.t. nullness in printing (#16681)
* Update tests/AheadOfTime/Trimming/check.ps1
* Fix merge errors
* il tests reflecting visibility change
* Nullness feature :: New warning for functions insisting on a (WithNull) argument + typar equality fix (#16853)
Null-handling functions now have the option to raise a warning when they are called with a known-to-be-withoutNull argument.
That way, API authors (incl. Fsharp.Core) can help with cleaning code from superflous null checks.
While doing it, a strange error kept coming when using Option.ofObj and other functions with a (T | null) typar.
It turned out that nullness info had been striped from nullable typars on stripTyparEqnsAux calls in some occasions, leading to treating all typars as 'KnownWithoutNull' even when that was not true.
* Feature nullness - propper guards against ` | null ` on unsupported types (#16907)
TODOs resolved:
* mkAppTy resolved
* mkFunTyWithNullness
* delayed checks of post-infered values for nullness-carrying capabilities
* Feature nullness :: warn also for 'obj' type (since it can be infered for null literal) (#16962)
* Nullness feature :: various bugfixes (#17080)
* Bugfix - matching aliased nullable should strip nullness
Eliminating nullness after pattern matching null (that is , for subsequent patterns) must visit contents of abbreviations as well. Otherwise it does not work with the Maybe<T> type whcih we use in the compiler.
* Making 'obj' work with new 'not null' constraints in fslib functions
Bugfix: obj cannot be passed to generic typars which require T: not null, such as the NonNull active pattern.
This commit fixes it.
* Bugfix - false 'useless null' warning in nested applications
Error fixed:
Error on useless null checkwith nullness constraint propagation in code like this:let meTry = Option.ofObj (Path.GetDirectoryName "")`. The warning about 'useless Option.ofObj' points to the string literal, ignoring the string literal is first passed to an API which may return null
* Fix import for C# extension methods
Bugfix for:
C# extension methods which put "?" on the this argument are wrongly interpreted by moving the nullability elsewhere. See AsMemory<T> from System.Memory.dll , this treats byteArray.ToMemory() as resulting in a Memory<byte | null> which is clearly wrong.
Also, this now allows to call C# extension methods with ?this to be invoked on a nullable value.
* LinkedList First,Last bugfix
There was a bug of LinkedList .First and .Last properties not returning nullable nodes.
This was fixed by improved byte import in previous commit, adding a regression test for guarding this.
* Bugfix: Solve nullness for typars
This fixes a bug where `not null` generic constraint was incorrectly passed between two typars:`T1 | null` with not null constraint on T1, and T2 without constraints.
This occured when calling Option.ofObj(..) when the inner expression caused solving of generic type arguments, e.g. after (|>) or (id) function.
This uses additional inference variable to unify them.
* updating IL tests
* One more try
* surface area
* trimmed size
* trimmed size
* fix issues for plain 'dotnet build Fsharp.Compiler.Service.sln`
* update FSharpCoreShippedPackageVersionValue
* Wkraround attributetargets issue by using 'obj'. This removes 3x box and adds 1x unbox.
* Feature nullness :: Bugfixes (#17102)
* Ignore Nullness applied on structs (C# allows T? when when T is a struct)
* Bigfix: Working with CLI events in Fsharp
* Bugfix: Mutable binding initially assigned to null should not need type annotation
* Solving `let mutable cache = null` via type inference
* Enforcing TyparConstraint.IsReferenceType when WithNull type is used
* Nullness-related constraint consistency
* Bugfix for emitting Nullable attrs for C#
* Automated command ran: fantomas
Co-authored-by: T-Gro <46543583+T-Gro@users.noreply.github.com>
* Feature nullness :: Try infer without null even when function/method arg is marked as nullable (#17269)
* Feature nullness :: apply nullness annotations to usages of 'obj' in Fsharp.Core (#17284)
* resolve build error from auto-merge
* Feature nullness :: Cleanups, Test reorg, fix incrementalbuild cache behavior (#17309)
* Fix TransparentCompiler - it should report PostInference errors if it only encountered a warning (reported as an error due to confiig)
* fix build issues
* resolve semantic merge error
* Nullness subsumption when used for contravariant typars
* fix nullness plain build (#17404)
* Update docs/release-notes/.FSharp.Compiler.Service/8.0.300.md
* Update release notes
* Update check.ps1
* Update check.ps1
---------
Co-authored-by: Vlad Zarytovskii <vzaritovsky@hotmail.com>
Co-authored-by: Tomas Grosup <tomasgrosup@microsoft.com>
Co-authored-by: dotnet bot <dotnet-bot@dotnetfoundation.org>
Co-authored-by: Kevin Ransom (msft) <codecutter@hotmail.com>
Co-authored-by: Eugene Auduchinok <eugene.auduchinok@jetbrains.com>
Co-authored-by: Edgar Gonzalez <edgargonzalez.info@gmail.com>
Co-authored-by: Florian Verdonck <florian.verdonck@outlook.com>
Co-authored-by: dotnet-maestro[bot] <42748379+dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: psfinaki <psfinaki@users.noreply.github.com>
2024-07-17 22:30:43 +03:00
|
|
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
2024-01-04 12:43:35 +03:00
|
|
|
# Visual Studio Version 17
|
|
|
|
VisualStudioVersion = 17.1.32113.165
|
|
|
|
MinimumVisualStudioVersion = 10.0.40219.1
|
|
|
|
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "MicroPerfCSharp", "tests\benchmarks\CompiledCodeBenchmarks\MicroPerf\CS\MicroPerfCSharp.csproj", "{CA98804B-E371-45AB-814F-AC4996579B6F}"
|
|
|
|
EndProject
|
|
|
|
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Service", "src\Compiler\FSharp.Compiler.Service.fsproj", "{9B4528F6-8883-475C-AAF0-4F646233D30A}"
|
|
|
|
EndProject
|
|
|
|
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Core", "src\FSharp.Core\FSharp.Core.fsproj", "{ADB51E6C-2D63-4AB1-9F2C-8E869FEFD170}"
|
|
|
|
EndProject
|
|
|
|
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.DependencyManager.Nuget", "src\FSharp.DependencyManager.Nuget\FSharp.DependencyManager.Nuget.fsproj", "{9B98A267-BE47-4711-A1B6-98F3F321E3DD}"
|
|
|
|
EndProject
|
|
|
|
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "MicroPerf", "tests\benchmarks\CompiledCodeBenchmarks\MicroPerf\MicroPerf.fsproj", "{ED766F38-BD2B-436B-AF73-7BE6FAE061DD}"
|
|
|
|
EndProject
|
|
|
|
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "HistoricalBenchmark", "tests\benchmarks\FCSBenchmarks\BenchmarkComparison\HistoricalBenchmark.fsproj", "{66E23120-5E94-49AE-A263-24583007F5F5}"
|
|
|
|
EndProject
|
|
|
|
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "HistoricalBenchmark.Runner", "tests\benchmarks\FCSBenchmarks\BenchmarkComparison\HistoricalBenchmark.Runner\HistoricalBenchmark.Runner.fsproj", "{2A1289B1-1539-48CB-BE03-807FE4BC0387}"
|
|
|
|
EndProject
|
|
|
|
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Compiler.Benchmarks", "tests\benchmarks\FCSBenchmarks\CompilerServiceBenchmarks\FSharp.Compiler.Benchmarks.fsproj", "{50D1ECF3-DF38-4A8E-AC3B-2AF1E63263B8}"
|
|
|
|
EndProject
|
|
|
|
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FCSSourceFiles", "tests\benchmarks\FCSBenchmarks\FCSSourceFiles\FCSSourceFiles.fsproj", "{0E2A7B27-3AD3-4C1D-BA0D-008A1200946F}"
|
|
|
|
EndProject
|
|
|
|
Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "FSharp.Test.Utilities", "tests\FSharp.Test.Utilities\FSharp.Test.Utilities.fsproj", "{0B149238-0912-493E-8877-F831AE01B942}"
|
|
|
|
EndProject
|
2024-01-24 23:12:31 +03:00
|
|
|
Project("{6EC3EE1D-3C4E-46DD-8F32-0CC8E7565705}") = "FSharp.Benchmarks.Common", "tests\benchmarks\FSharp.Benchmarks.Common\FSharp.Benchmarks.Common.fsproj", "{62DED1EA-6A33-4537-8ED2-118462D0FEE5}"
|
|
|
|
EndProject
|
2024-01-04 12:43:35 +03:00
|
|
|
Global
|
|
|
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
|
|
|
Debug|Any CPU = Debug|Any CPU
|
|
|
|
Release|Any CPU = Release|Any CPU
|
|
|
|
Proto|Any CPU = Proto|Any CPU
|
|
|
|
EndGlobalSection
|
|
|
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
|
|
|
{CA98804B-E371-45AB-814F-AC4996579B6F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{CA98804B-E371-45AB-814F-AC4996579B6F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
|
|
{CA98804B-E371-45AB-814F-AC4996579B6F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
|
|
{CA98804B-E371-45AB-814F-AC4996579B6F}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
|
|
{CA98804B-E371-45AB-814F-AC4996579B6F}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{9B4528F6-8883-475C-AAF0-4F646233D30A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{9B4528F6-8883-475C-AAF0-4F646233D30A}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
|
|
{9B4528F6-8883-475C-AAF0-4F646233D30A}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
|
|
{9B4528F6-8883-475C-AAF0-4F646233D30A}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
|
|
{9B4528F6-8883-475C-AAF0-4F646233D30A}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{ADB51E6C-2D63-4AB1-9F2C-8E869FEFD170}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{ADB51E6C-2D63-4AB1-9F2C-8E869FEFD170}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
|
|
{ADB51E6C-2D63-4AB1-9F2C-8E869FEFD170}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
|
|
{ADB51E6C-2D63-4AB1-9F2C-8E869FEFD170}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
|
|
{ADB51E6C-2D63-4AB1-9F2C-8E869FEFD170}.Proto|Any CPU.ActiveCfg = Proto|Any CPU
|
|
|
|
{ADB51E6C-2D63-4AB1-9F2C-8E869FEFD170}.Proto|Any CPU.Build.0 = Proto|Any CPU
|
|
|
|
{9B98A267-BE47-4711-A1B6-98F3F321E3DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{9B98A267-BE47-4711-A1B6-98F3F321E3DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
|
|
{9B98A267-BE47-4711-A1B6-98F3F321E3DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
|
|
{9B98A267-BE47-4711-A1B6-98F3F321E3DD}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
|
|
{9B98A267-BE47-4711-A1B6-98F3F321E3DD}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{ED766F38-BD2B-436B-AF73-7BE6FAE061DD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{ED766F38-BD2B-436B-AF73-7BE6FAE061DD}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
|
|
{ED766F38-BD2B-436B-AF73-7BE6FAE061DD}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
|
|
{ED766F38-BD2B-436B-AF73-7BE6FAE061DD}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
|
|
{ED766F38-BD2B-436B-AF73-7BE6FAE061DD}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{66E23120-5E94-49AE-A263-24583007F5F5}.Debug|Any CPU.ActiveCfg = Release|Any CPU
|
|
|
|
{66E23120-5E94-49AE-A263-24583007F5F5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
|
|
{66E23120-5E94-49AE-A263-24583007F5F5}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
|
|
{66E23120-5E94-49AE-A263-24583007F5F5}.Proto|Any CPU.ActiveCfg = Release|Any CPU
|
|
|
|
{2A1289B1-1539-48CB-BE03-807FE4BC0387}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{2A1289B1-1539-48CB-BE03-807FE4BC0387}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
|
|
{2A1289B1-1539-48CB-BE03-807FE4BC0387}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
|
|
{2A1289B1-1539-48CB-BE03-807FE4BC0387}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
|
|
{2A1289B1-1539-48CB-BE03-807FE4BC0387}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{50D1ECF3-DF38-4A8E-AC3B-2AF1E63263B8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{50D1ECF3-DF38-4A8E-AC3B-2AF1E63263B8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
|
|
{50D1ECF3-DF38-4A8E-AC3B-2AF1E63263B8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
|
|
{50D1ECF3-DF38-4A8E-AC3B-2AF1E63263B8}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
|
|
{50D1ECF3-DF38-4A8E-AC3B-2AF1E63263B8}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{0E2A7B27-3AD3-4C1D-BA0D-008A1200946F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{0E2A7B27-3AD3-4C1D-BA0D-008A1200946F}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
|
|
{0E2A7B27-3AD3-4C1D-BA0D-008A1200946F}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
|
|
{0E2A7B27-3AD3-4C1D-BA0D-008A1200946F}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
|
|
{0E2A7B27-3AD3-4C1D-BA0D-008A1200946F}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{0B149238-0912-493E-8877-F831AE01B942}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{0B149238-0912-493E-8877-F831AE01B942}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
|
|
{0B149238-0912-493E-8877-F831AE01B942}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
|
|
{0B149238-0912-493E-8877-F831AE01B942}.Release|Any CPU.Build.0 = Release|Any CPU
|
|
|
|
{0B149238-0912-493E-8877-F831AE01B942}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
|
2024-01-24 23:12:31 +03:00
|
|
|
{62DED1EA-6A33-4537-8ED2-118462D0FEE5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{62DED1EA-6A33-4537-8ED2-118462D0FEE5}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
|
|
|
{62DED1EA-6A33-4537-8ED2-118462D0FEE5}.Proto|Any CPU.ActiveCfg = Debug|Any CPU
|
|
|
|
{62DED1EA-6A33-4537-8ED2-118462D0FEE5}.Proto|Any CPU.Build.0 = Debug|Any CPU
|
|
|
|
{62DED1EA-6A33-4537-8ED2-118462D0FEE5}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
|
|
|
{62DED1EA-6A33-4537-8ED2-118462D0FEE5}.Release|Any CPU.Build.0 = Release|Any CPU
|
2024-01-04 12:43:35 +03:00
|
|
|
EndGlobalSection
|
|
|
|
GlobalSection(SolutionProperties) = preSolution
|
|
|
|
HideSolutionNode = FALSE
|
|
|
|
EndGlobalSection
|
|
|
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
|
|
|
SolutionGuid = {6D8EE73F-B214-462F-8774-84EF625EA6E4}
|
|
|
|
EndGlobalSection
|
|
|
|
EndGlobal
|