-
Notifications
You must be signed in to change notification settings - Fork 13.3k
Check that the bounds of impl are implied by trait in a more general way #20020
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
Labels
Milestone
Comments
When fixing this, be sure that #20107 is fixed too. |
Putting this on 1.0 alpha as a (very) nice to have. @jroesch is working on it. |
Motivation is that it will help guide people to not write illegal programs :) |
bors
added a commit
that referenced
this issue
Jan 15, 2015
…sakis This should fix both #20020 and #20107. This moves out the code into its own file. I have a couple concerns that can either be addressed in this PR or in a future one. - The error reporting for the fulfillment context should be span aware because currently it is attached to the top of the file which is less then desirable. - There is a failure in the test file: run-pass/issue-2611-3.rs, this seems like it should be a failure to me, but I am not sure. As a nit I'm not enthused about the file name, and am open to better suggestions. r? @nikomatsakis
I believe this has been fixed by #20290 closing |
# for free
to join this conversation on GitHub.
Already have an account?
# to comment
Currently we check that the where clauses on an impl are consistent with a trait by examining the
TypeParameterDefs
, and also with some specialized code around regions. This is not consistent with generalized where clauses. Probably the right approach is to:ParameterEnvironment
that contains the bounds from the trait method, substituted appropriately so that they are in the namespace of the impl.select_all_or_error()
. If any errors result, that indicates a bound in the impl that does not appear in the trait.resolve_regions_and_report_errors()
as well to check for region obligations that are not satisfiable.We may want to take some care here with respect to error messages; we probably want to print something more helpful about how there is a mismatch between the trait and impl.
The text was updated successfully, but these errors were encountered: