From cc3abc4d2786be6d8366eb904b8ea4ac4a3e9f7e Mon Sep 17 00:00:00 2001 From: Aleksey Kladov Date: Wed, 17 Apr 2019 00:11:19 +0300 Subject: [PATCH] add a test for unsized index --- src/test/ui/unsized-locals/unsized-index.rs | 23 +++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/test/ui/unsized-locals/unsized-index.rs 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() {}