-
Notifications
You must be signed in to change notification settings - Fork 786
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
Fix17713 - Reverting PR - 17649 - Make the interaction between #line and #nowarn directives consistent #17724
Conversation
|
FYI @Martin521, it was blocking our sourcebuild pipeline (Kevin tried to fix it yesterday, but no luck apparently). |
How can I reproduce this? |
@Martin521 Build the bootstrapper with an F# 9.0 compiler with these changes. |
Ok, if that is a requirement, then this fix can never be done in one step. EDIT: It can be done in one step, with just one additional #nowarn in fsyaccpars. See below. |
|
Actually, with just this additional |
@Martin521 we are going with the reversion for now, we need to have a fuller discussion on how we want nowarn to work if we decide to change it. Here is my discussion of why I believe reversion is the way to go right now: #17748 (comment) |
The "scoped nowarn" RFC discussion thread might be an appropriate place for a fuller discussion. |
Yeah, we should continue there. @KevinRansom @T-Gro we should discuss it on some of the upcoming triage sessions |
Please make sure that this flows into .NET 9.0. I believe fsharp's |
@dotnet/fsharp - This change needs to be ported into .NET 9. What is the best way to get this backported to the |
This language feature caused bootstrapping issues for this repo introducing additional unintended warnings when building the F# bootstrapper with F# 9.0.
This was first noticed by the sourcebuildteam who have a strict bootstrapping requirement for delivery to Linux distributions.
Additionally the langversion:8 implementation produced different error output from the 8.0.* version of the compiler.
The way that we use #line and # n filename in the product is quite extensive and fragile. It is clear that we need a more robust solution highlighted by the issue the original PR was intended to solve, this has highlighted that we do need to address the consistency issue. Everyone on the team agreed that the current implementation that we are going back to is not ideal, but this reversion allows us to identify a better design for a fix.
The warnings by bootstrapping with F# 9.0 produced are: