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
Indicate expected versus actual types in type errors #3399
Comments
I think it could be even nicer if the compiler could insert a little (?helpme (thingOfTheWrongType)) and suggest possible fixes but that's most probably out of scope. |
We've had issues about this previously, and did attempt to change the error to work this way... but unfortunately the type checker isn't able to know for sure whether A or B is the type that is actually desired. |
Yeah, I’m certain there is already an issue for exactly this, possibly even open. |
I see. Sorry guys! |
Actually maybe we could make that explicit in the message? I remember trying to find the order by making some minimal example. Since there is no order this could be misleading. I know there is nothing in the message suggests that there is an order but still. The message could have a little "in no particular order" disclaimer. |
Actually sorry, I take back what I said before: while we do have discussion which notes that identifying expected vs actual types would be useful, there doesn’t appear to be an open issue for actually doing so. |
So we might want to reopen this perhaps? |
I think this should be reopened. At the very least, it would track that the issue does exist. |
I wrote this on discord, but thought I would add it as a suggestion here as well - Looking at the error message in this issue #1577 - Some very useful information is partly present but buried - "checking that expression 4 has type String". Is it possible to put that information up front? For example the error messages could say something like -
|
I never know what the compiler wants from me when it says:
Could not match type A with type B
Which one does it expect? Which one is the one I supply?
For people like me it's not always obvious which type I am supplying.
I don't really see any downside to changing this to:
Could not match expected type A with actual type B
I don't know about any tooling that might depend on this exact message.
The text was updated successfully, but these errors were encountered: