-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Output other compiler errors #14339
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
Output other compiler errors #14339
Conversation
Not sure how to create a test for this. This is the current error message we get for the example in #14303. |
8abc42b
to
00a3dbd
Compare
675123e
to
c99694f
Compare
def addToLast(str: String): Unit = | ||
diagnostics match | ||
case head :: tail => | ||
diagnostics = Diagnostic.Error(s"${head.msg.rawMessage}$str", head.pos) :: tail |
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.
If we catch warnings as well, we should handle them properly too. Although I'm not sure if we really need that and if we can handle this reliably as the external compiler process might not fail if there are some warnings but no error. As far as I know, every time we want to check if a warning was raised we enable fatal warnings and check for errors instead
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.
I added code to ignore warnings
|
||
val dummyStream = new PrintStream(new ByteArrayOutputStream()) | ||
val reporter = TestReporter.reporter(dummyStream, ERROR) | ||
val reporter = TestReporter.reporter(System.out, ERROR) |
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.
I would say we don't want to show all the logs in all situations as we don't show them by default when compiling with the latest compiler inside the same process. I think it would make sense to show the logs if the external process failed but no errors were parsed or if there's a mismatch between the expected number and positions of errors and the errors that we extracted from the logs
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.
Now errors are not printed in neg tests unless the test fails.
Based on `compileFromTasty` reporter
Fixes #14303