-
Notifications
You must be signed in to change notification settings - Fork 12.8k
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
[1.31 beta] Trait bound is not satisfied #54467
Comments
For combine it seems like rustc no longer sees that
|
This looks like a "soft" deadlock on Minified: pub trait Stream {
type Item;
type Error;
}
pub trait ParseError<I> {
type Output;
}
pub struct Lex<'a, I>
where I: Stream,
I::Error: ParseError<char>,
<<I as Stream>::Error as ParseError<char>>::Output: 'a
{
x: &'a <I::Error as ParseError<char>>::Output
}
pub struct Reserved<'a, I> where
I: Stream<Item=char> + 'a,
I::Error: ParseError<I::Item>,
// uncomment this to make it fail on stable too
// <<I as Stream>::Error as ParseError<char>>::Output: 'a
{
x: Lex<'a, I>
}
fn main() {} |
to detail: This means that bounds such as I think a possible hacky fix would be to normalize the implied outlives bounds (or maybe, all outlives bounds) in the normalized param env instead of the unnormalized param env. |
Note that this is broken even on older nightlies as long as |
I'll try to get a fix done later this week. |
visited at T-compiler. P-high. |
The normalization of type-outlives predicates can depend on misc. environment predicates, but not the other way around. Inferred lifetime bounds can propagate type-outlives bounds far and wide, so their normalization needs to work well. Fixes rust-lang#54467
normalize param-env type-outlives predicates last The normalization of type-outlives predicates can depend on misc. environment predicates, but not the other way around. Inferred lifetime bounds can propagate type-outlives bounds far and wide, so their normalization needs to work well. Fixes #54467 r? @nikomatsakis beta-nominating because this is required for inferred_outlives_bounds, which is in beta
My understanding is that this is resolved by #54877 |
Interestingly, this is not fixed on current beta (or perhaps re-regressed); I'm reopening and retagging. Specifically at least postgis is failing to build: https://crater-reports.s3.amazonaws.com/beta-1.31-1/beta-2018-10-30/reg/vectortile-0.2.2/log.txt |
Maybe we need to reconsider backporting PR #54701 ... will investigate... |
Test resultspostgis 0.6.0
combine-language 3.0.1:
|
Seems like postgis-0.6.0 simply wasn't fixed. |
Trying to investigate more deeply. (Also, I realize now that @Mark-Simulacrum this is likely the issue you were talking about when you were talking about re-regressing..?) |
Found the problem. Fix coming shortly. |
The following crates fail to build on
1.30
due to trait bound errors.3.0.1
regressed from stable to beta (build log) cc @Marwes0.6.0
regressed from stable to beta (build log) cc @andelf0.2.1
(depends onpostgis
) regressed from stable to beta (build log) cc @kestredThe text was updated successfully, but these errors were encountered: