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

Improve error message for non-matching types #3399

Closed
i-am-the-slime opened this Issue Jul 10, 2018 · 9 comments

Comments

Projects
None yet
4 participants
@i-am-the-slime
Copy link

i-am-the-slime commented Jul 10, 2018

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.

@i-am-the-slime

This comment has been minimized.

Copy link

i-am-the-slime commented Jul 10, 2018

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.

@garyb

This comment has been minimized.

Copy link
Member

garyb commented Jul 10, 2018

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.

@hdgarrood

This comment has been minimized.

Copy link
Contributor

hdgarrood commented Jul 11, 2018

Yeah, I’m certain there is already an issue for exactly this, possibly even open.

@i-am-the-slime

This comment has been minimized.

Copy link

i-am-the-slime commented Jul 12, 2018

I see. Sorry guys!

@i-am-the-slime

This comment has been minimized.

Copy link

i-am-the-slime commented Jul 12, 2018

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.

@hdgarrood

This comment has been minimized.

Copy link
Contributor

hdgarrood commented Jul 13, 2018

Previously: #3111 #1577 #1583

@hdgarrood

This comment has been minimized.

Copy link
Contributor

hdgarrood commented Jul 13, 2018

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.

@hdgarrood

This comment has been minimized.

Copy link
Contributor

hdgarrood commented Jul 13, 2018

So we might want to reopen this perhaps?

@JordanMartinez

This comment has been minimized.

Copy link
Contributor

JordanMartinez commented Nov 27, 2018

I think this should be reopened. At the very least, it would track that the issue does exist.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment