-
Notifications
You must be signed in to change notification settings - Fork 1.1k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Avoid diagnostic message forcing crashing the compiler #19113
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Because HideNonSensicalMessages looks at hasErrors, we need to narrow the faking to just the isNonSensical call
odersky
requested changes
Dec 15, 2023
_errorCount += 1 | ||
dia.msg.isNonSensical | ||
finally _errorCount -= 1 // decrease rather than reset the value so we only ever decrease by 1 | ||
else dia.msg.isNonSensical) && |
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.
Why don't we simply test hasErrors
first? Then the isNonSensical
test is assured to run with errorCount > 0
.
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.
Good idea, but I had to make another change too.
We can switch to a more straightforward hasErrors check in isHidden, but then we need to bump the errorCount before calling doReport, as doReport will then, necessarily, force the message. For reference, the way I test this manually is by: 1. In ignoredConvertibleImplicits, changing back to `viewExists(imp, fail.expectedType)` 2. In adapt1, removing the `dummyTreeOfType.unapply(tree).isEmpty` guard 3. Compiling tests/neg/i18650.scala Also, while I'm here, instruct on the presence of -Yno-enrich-error-messages, like we do for -Yno-decode-stacktraces.
dwijnand
changed the title
Set errorsReported while running isHidden and forcing message
Avoid diagnostic message forcing crashing the compiler
Dec 15, 2023
odersky
approved these changes
Dec 17, 2023
dwijnand
pushed a commit
to dwijnand/scala3
that referenced
this pull request
Feb 21, 2024
Using issue scala#18650 as the reference (but issue scala#18999 is another option) building on the fix in PR scala#18719 (refined in PR scala#18727) as well as the fix in PR scala#18760, I'm trying to make a more root change here by making sure that message forcing only occurs with `hasErrors`/`errorsReported` is true, so as to avoid assertion errors crashing the compiler. (cherry picked from commit 10f2c10)
dwijnand
pushed a commit
to dwijnand/scala3
that referenced
this pull request
Mar 5, 2024
Using issue scala#18650 as the reference (but issue scala#18999 is another option) building on the fix in PR scala#18719 (refined in PR scala#18727) as well as the fix in PR scala#18760, I'm trying to make a more root change here by making sure that message forcing only occurs with `hasErrors`/`errorsReported` is true, so as to avoid assertion errors crashing the compiler. (cherry picked from commit 10f2c10)
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Using issue #18650 as the reference (but issue #18999 is another option) building on the fix in PR #18719 (refined in PR #18727) as well as the fix in PR #18760, I'm trying to make a more root change here by making sure that message forcing only occurs with
hasErrors
/errorsReported
is true, so as to avoid assertion errors crashing the compiler.