// 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 { _edges: E, _nodes: N, _ix: Vec, } fn graph() -> Graph { todo!() } fn first_ice() { let g = graph::(); 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 { data: Vec, } pub fn second_ice() { let v = Foo::> { data: vec![] }; (|| v.data[0])(); } pub fn main() { first_ice(); second_ice(); }