Add regresstion test for #90024.
Uses 2 MCVEs from the issue tracker that test opposite sides of the problem.
This commit is contained in:
parent
9158fc2071
commit
eae42fd9d0
1 changed files with 37 additions and 0 deletions
|
@ -0,0 +1,37 @@
|
|||
// Test that rustc doesn't ICE as in #90024.
|
||||
// check-pass
|
||||
// edition=2018
|
||||
|
||||
#![warn(rust_2021_incompatible_closure_captures)]
|
||||
|
||||
// Checks there's no double-subst into the generic args, otherwise we get OOB
|
||||
// MCVE by @lqd
|
||||
pub struct Graph<N, E, Ix> {
|
||||
_edges: E,
|
||||
_nodes: N,
|
||||
_ix: Vec<Ix>,
|
||||
}
|
||||
fn graph<N, E>() -> Graph<N, E, i32> {
|
||||
todo!()
|
||||
}
|
||||
fn first_ice() {
|
||||
let g = graph::<i32, i32>();
|
||||
let _ = || g;
|
||||
}
|
||||
|
||||
// Checks that there is a subst into the fields, otherwise we get normalization error
|
||||
// MCVE by @cuviper
|
||||
use std::iter::Empty;
|
||||
struct Foo<I: Iterator> {
|
||||
data: Vec<I::Item>,
|
||||
}
|
||||
pub fn second_ice() {
|
||||
let v = Foo::<Empty<()>> { data: vec![] };
|
||||
|
||||
(|| v.data[0])();
|
||||
}
|
||||
|
||||
pub fn main() {
|
||||
first_ice();
|
||||
second_ice();
|
||||
}
|
Loading…
Reference in a new issue