Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix [<tailcall>] false positive with yield! #16933

Merged

Conversation

dawedawe
Copy link
Contributor

Description

Fixes a false positive that @brianrourkeboll came across in #16882
Thanks @brianrourkeboll for providing the repro code!

Checklist

  • Test cases added

  • Performance benchmarks added in case of performance changes

  • Release notes entry updated:

    Please make sure to add an entry with short succinct description of the change as well as link to this pull request to the respective release notes file, if applicable.

    Release notes files:

    • If anything under src/Compiler has been changed, please make sure to make an entry in docs/release-notes/.FSharp.Compiler.Service/<version>.md, where <version> is usually "highest" one, e.g. 42.8.200
    • If language feature was added (i.e. LanguageFeatures.fsi was changed), please add it to docs/releae-notes/.Language/preview.md
    • If a change to FSharp.Core was made, please make sure to edit docs/release-notes/.FSharp.Core/<version>.md where version is "highest" one, e.g. 8.0.200.

    Information about the release notes entries format can be found in the documentation.
    Example:

    If you believe that release notes are not necessary for this PR, please add NO_RELEASE_NOTES label to the pull request.

@dawedawe dawedawe requested a review from a team as a code owner March 22, 2024 10:25
Copy link
Contributor

github-actions bot commented Mar 22, 2024

❗ Release notes required


✅ Found changes and release notes in following paths:

Change path Release notes path Description
src/Compiler docs/release-notes/.FSharp.Compiler.Service/8.0.300.md

@dawedawe dawedawe changed the title Fix tailcall false positive with yieldbang Fix [<tailcall>] false positive with yieldbang Mar 22, 2024
@dawedawe dawedawe changed the title Fix [<tailcall>] false positive with yieldbang Fix [<tailcall>] false positive with yield! Mar 22, 2024
@dawedawe dawedawe changed the title Fix [<tailcall>] false positive with yield! Draft: Fix [<tailcall>] false positive with yield! Mar 22, 2024
@dawedawe dawedawe marked this pull request as draft March 22, 2024 10:58
@dawedawe dawedawe marked this pull request as ready for review March 22, 2024 22:03
@dawedawe dawedawe changed the title Draft: Fix [<tailcall>] false positive with yield! Fix [<tailcall>] false positive with yield! Mar 22, 2024
Copy link
Member

@psfinaki psfinaki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@vzarytovskii vzarytovskii merged commit 3350127 into dotnet:main Mar 25, 2024
32 checks passed
psfinaki added a commit that referenced this pull request Mar 28, 2024
* PrettyNaming: make DoesIdentifierNeedBackticks public (#16613)

* Update dependencies from https://github.com/dotnet/arcade build (#16944)

Microsoft.DotNet.Arcade.Sdk
 From Version 8.0.0-beta.24170.6 -> To Version 8.0.0-beta.24172.5

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

* Unskip a few tests (#16946)

* Unskip a few tests

* another one

* Fix [<tailcall>] false positive with yield! (#16933)

* add test case showing a false positive with yield!

* add missing case in IsAppInLambdaBody that can happen with yield!

* add release notes entry

* update PR number

* only bind to what we are interested in

* add test expecting a warning for yield! in a list comprehension

* add test case using yield! in a custom CE that overflows the stack

* Add regression test for nameof type with generic parameters (#16827)

Co-authored-by: Vlad Zarytovskii <vzaritovsky@hotmail.com>

* Minor README update about proto (#16945)

* Minor README update about proto

It's Bootstrap actually.

* Update DEVGUIDE.md

Co-authored-by: Vlad Zarytovskii <vzaritovsky@hotmail.com>

* Update DEVGUIDE.md

---------

Co-authored-by: Vlad Zarytovskii <vzaritovsky@hotmail.com>

* Compiled code benchmarks: easy benchmarking of `preview` against current (#16942)

* Make it easy to bench preview against current

* Revert EnableDefaultNoneItems false (#16953)

* Exclude compiler service benchmark from VMR build when not building tests (#16955)

* Exclude compiler service benchmark from VMR build when not building tests

* remove Z

---------

Co-authored-by: Petr <psfinaki@users.noreply.github.com>

* Update dependencies from https://github.com/dotnet/arcade build 20240326.8 (#16957)

Microsoft.DotNet.Arcade.Sdk
 From Version 8.0.0-beta.24172.5 -> To Version 8.0.0-beta.24176.8

Co-authored-by: dotnet-maestro[bot] <dotnet-maestro[bot]@users.noreply.github.com>

---------

Co-authored-by: Eugene Auduchinok <eugene.auduchinok@jetbrains.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: Petr <psfinaki@users.noreply.github.com>
Co-authored-by: dawe <dawedawe@posteo.de>
Co-authored-by: Florian Verdonck <florian.verdonck@outlook.com>
Co-authored-by: Vlad Zarytovskii <vzaritovsky@hotmail.com>
Co-authored-by: Brian Rourke Boll <brianrourkeboll@users.noreply.github.com>
Co-authored-by: Kevin Ransom (msft) <codecutter@hotmail.com>
Co-authored-by: Matt Mitchell <mmitche@microsoft.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Archived in project
Development

Successfully merging this pull request may close these issues.

5 participants