ignore implied bounds with placeholders#112422
Conversation
|
(rustbot has picked a reviewer for you, use r? to override) |
| // Because of #109628, we may have unexpected placeholders. Ignore them! | ||
| // FIXME(#109628): panic in this case once the issue is fixed. | ||
| let bounds = bounds.into_iter().filter(|bound| !bound.has_placeholders()); |
There was a problem hiding this comment.
can you move that into the TypeOp?
There was a problem hiding this comment.
Moving this into the TypeOp has no benefit as we would have to duplicate the logic in QueryTypeOp::{perform_query,perform_locally_in_new_solver} as well. It is also more difficult to handle canonicalized query responses - there is no easy way to detect placeholders for example.
Doing it in the query itself is difficult as we need to do OpportunisticRegionResolution before checking for placeholders. Using TypeVisitableExt::has_placeholders to check for erroneus placeholders there does not play well with #109388 as it would yield many false positives.
|
@aliemjay any updates on this? thanks |
|
☔ The latest upstream changes (presumably #117228) made this pull request unmergeable. Please resolve the merge conflicts. |
|
I think I have a case similar to #112250 in code at https://gitlab.com/chrysn/coap-message-demos branch embedded-nal-coap-clientserver when run as |
02f72b3 to
af79fd1
Compare
|
@rustbot review |
|
@bors r+ |
|
☀️ Test successful - checks-actions |
|
Finished benchmarking commit (4d7f952): comparison URL. Overall result: ✅ improvements - no action needed@rustbot label: -perf-regression Instruction countThis is a highly reliable metric that was used to determine the overall result at the top of this comment.
Max RSS (memory usage)ResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
CyclesResultsThis is a less reliable metric that may be of interest but was not used to determine the overall result at the top of this comment.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 676.982s -> 676.352s (-0.09%) |
|
( |
given the following code:
when computing the implied bounds from
Foo<X>we incorrectly get the boundX: !xfrom the normalization offor<'x> <X as Trait>::Ty::<'x>: Sized. This is a a known bug! we shouldn't use the constraints that arise from normalization as implied bounds. See #109628.Ignore these bounds for now. This should prevent later ICEs.
Fixes #112250
Fixes #107409