Uh oh!
There was an error while loading. Please reload this page.
Typeck highlevel before bodies - #24422
Conversation
…y checks. This avoids various ICEs, e.g. premature calls to cat_expr that yield the dreaded "cat_expr Errd" ICE.
rust-highfive
commented
Apr 14, 2015
r? @pcwalton (rust_highfive has picked a reviewer for you, use r? to override) |
pnkfelix
commented
Apr 14, 2015
ebfull
commented
Apr 14, 2015
Nice! |
lilyball
commented
Apr 15, 2015
Conceptually, I like this change. I'd rather debug the high-level structural issues first, especially as issues in function bodies may actually just be symptoms of high-level issues. |
nikomatsakis
commented
Apr 16, 2015
r+ I've been thinking about doing exactly this, actually, so happy that you beat me to it. (The other thing I have been considering is adding some kind of rough dependency analysis so we can type-check callees before callers.) |
nikomatsakis
commented
Apr 16, 2015
Note though that we already have the |
pnkfelix
commented
Apr 17, 2015
@bors r=nikomatsakis |
bors
commented
Apr 17, 2015
📌 Commit d82f912 has been approved by |
bors
commented
Apr 17, 2015
⌛ Testing commit d82f912 with merge 971440a... |
bors
commented
Apr 17, 2015
⛄ The build was interrupted to prioritize another pull request. |
bors
commented
Apr 17, 2015
…omatsakis typeck: Do high-level structural/signature checks before function body checks. This avoids various ICEs, e.g. premature calls to cat_expr that yield the dreaded "cat_expr Errd" ICE. However, it also means that some early error feedback is now not provided. This may be for the best, because the error feedback were were providing in some of those cases were false positives -- it was spurious feedback and a distraction from the real problem. So it is not 100% clear whether we actually want to put this change in or not. I think its a net win, but others might disagree. (Kudos to @arielb1 for suggesting this modification.)
bors
commented
Apr 17, 2015
pnkfelix
commented
Apr 23, 2015
normally we would not (should not) accept a change like this for beta, but, since this (1.) fixes ICEs (2.) is a user-experience improvement, and (3.) is pretty low-risk, we are taking it just because 1.0 release is a special case going from nominated to (nominated, accepted) |
typeck: Do high-level structural/signature checks before function body checks.
This avoids various ICEs, e.g. premature calls to cat_expr that yield the dreaded "cat_expr Errd" ICE.
However, it also means that some early error feedback is now not provided. This may be for the best, because the error feedback were were providing in some of those cases were false positives -- it was spurious feedback and a distraction from the real problem.
So it is not 100% clear whether we actually want to put this change in or not. I think its a net win, but others might disagree.
(Kudos to @arielb1 for suggesting this modification.)