-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Turn given loop prevention on for -source future #19392
Conversation
Drop the experimental language import. I believe everybody agrees that this is a desirable improvement, and type inference and implicit search have traditionally been in the realm of the compiler implementers. Experimental language imports have to live forever (albeit as deprecated once the feature is accepted as standard). So they are rather heavyweight and it is unergonomic to require them for smallish improvements to type inference. The new road map is as follows: - In 3.4: warning if behavior would change in the future. - In 3.5: error if behavior would change in the future - In 3.future (at the earliest 3.6): new behavior.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to make sure that fatal warning users have a way to upgrade? I would hope that it's possible to Wconf the warning away, but I'm not 100% confident. Should we double-check with a test?
LGTM for the rest
Suppressing the warning would only be a temporary fix since in 3.5 we emit an error in the same situation. The warning does give hints how to work around the problem, and the sooner people apply them the better. So I think we are as good as we could be. |
Of course suppressing a warning is a temporary fix. But temporary fixes are good! The typical scenario that users face is: they upgrade, they get plenty of new warnings-that-are-errors. These warnings come not only from this PR, but from all the other stuff that is newly a warning. What do they do?
There is substantial value to users to having the ability to temporarily, selectively ignore new warnings. Even if it works only within a single minor release. |
@sjrd OK. Can one of you suggest a WConf test or fix? I have not experience with that area. |
In Scala 2.13.13, these migratory behaviors are controlled by
One may joke that the alternative is to change all warnings to language imports. |
I added a test, which shows that @nowarn works. I am sure -Wconf would work also, since it's very general. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you!
Question: |
Drop the experimental language import. I believe everybody agrees that this is a desirable improvement, and type inference and implicit search have traditionally been in the realm of the compiler implementers.
Experimental language imports have to live forever (albeit as deprecated once the feature is accepted as standard). So they are rather heavyweight and it is unergonomic to require them for smallish improvements to type inference.
The new road map is as follows: