diff --git a/src/test/ui/unsized-locals/unsized-index.rs b/src/test/ui/unsized-locals/unsized-index.rs new file mode 100644 index 0000000000000..2e6bd82bda302 --- /dev/null +++ b/src/test/ui/unsized-locals/unsized-index.rs @@ -0,0 +1,23 @@ +// compile-pass + +// `std::ops::Index` has an `: ?Sized` bound on the `Idx` type param. This is +// an accidental left-over from the times when it `Index` was by-reference. +// Tightening the bound now could be a breaking change. Although no crater +// regression were observed (https://github.com/rust-lang/rust/pull/59527), +// let's be conservative and just add a test for this. +#![feature(unsized_locals)] + +use std::ops; + +pub struct A; + +impl ops::Index for A { + type Output = (); + fn index(&self, _: str) -> &Self::Output { panic!() } +} + +impl ops::IndexMut for A { + fn index_mut(&mut self, _: str) -> &mut Self::Output { panic!() } +} + +fn main() {}