Closed johnynek closed 11 months ago
Patch coverage: 96.63%
and project coverage change: +0.20%
:tada:
Comparison is base (
423a144
) 91.75% compared to head (66405c8
) 91.95%.
:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.
I wanted to merely improve error reporting by showing more than one type error when it was possible (#1044 )
Along the way, I found a long standing bug with locations incorrectly being set to be their outermost scope. I had noticed this before, but hadn't run it down. I had assumed it was part of typechecking and just due to inference being a bit non-specific when unifying across many types.
But in my example, I wound up printing out the Expr and seeing that the Declarations and Regions were set wrong.
The bug turned out to be the
.as
fromFunctor
. The Expr traverse instance is doing what you say, but .as isn't what we meant. We wanted to only replace the outermost tag, not every tag transitively.I have removed that code since we were only using it for this one bug. :)
This also should do more parallel checking of errors: if two adjacent lets don't depend on each other, we check in parallel.
We can do a bit better by only skipping lets that depend on a previous failed let, but I will punt that to a later PR.