I think you and Finagolfin are kinda talking past each other here.
I know that (and so does Fingolfin). But knowing which expression is "too hard" is exactly what the current error message doesn't tell us.
Today, when the type checker bails (especially in SwiftUI code), the error message just says "Uh oh, something went wrong in this giant @ViewBuilder." Rather than make this happen less frequently, I primarily want better information about what to do when it does happen.
"I was really working hard on type checking but I had to give up when I reached line 98" would be an enormous help. It would also help to know "I worked the hardest on line 150, 172, and 193."
Now, before you assume, I know that the problem might not "really" be on line 98, 150, 172, or 193, in that case. But if the checker is working overtime on line 150, I can usually at least help out by adding some more type information; maybe I'll write VerticalAlignment.top instead of just .top. A little more help from me usually gives the type checker enough room to complete its job and give me a useful diagnostic.
Just tell us where the type checker is struggling. We'll give you the type hints you need to solve the problem.
See, that's the miscommunication here. You're assuming that "reasonable time" errors will necessarily be completely opaque, and so if you give up and let us help the type checker, we'll all just have to add explicit type hints everywhere in order to avoid "reasonable time" errors, completely undermining the expressiveness of the language everywhere, forever.
But if the type checker would tell us where it's struggling, we could add i just when/where it's needed, just when the type checker tells us it needs help, not "basically all literals."