From 218caa410aa38c29984be31a5229b9fa717560ee Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:19:13 +0200 Subject: Merging upstream version 1.68.2+dfsg1. Signed-off-by: Daniel Baumann --- .../mir-inlining/array-clone-with-generic-size.rs | 11 ------- .../ice-issue-100550-unnormalized-projection.rs | 30 ----------------- src/test/ui/mir/mir-inlining/ice-issue-45493.rs | 17 ---------- src/test/ui/mir/mir-inlining/ice-issue-45885.rs | 29 ----------------- src/test/ui/mir/mir-inlining/ice-issue-68347.rs | 28 ---------------- src/test/ui/mir/mir-inlining/ice-issue-77306-1.rs | 17 ---------- src/test/ui/mir/mir-inlining/ice-issue-77306-2.rs | 32 ------------------ src/test/ui/mir/mir-inlining/ice-issue-77564.rs | 38 ---------------------- .../mir-inlining/no-trait-method-issue-40473.rs | 16 --------- .../mir/mir-inlining/var-debuginfo-issue-67586.rs | 11 ------- 10 files changed, 229 deletions(-) delete mode 100644 src/test/ui/mir/mir-inlining/array-clone-with-generic-size.rs delete mode 100644 src/test/ui/mir/mir-inlining/ice-issue-100550-unnormalized-projection.rs delete mode 100644 src/test/ui/mir/mir-inlining/ice-issue-45493.rs delete mode 100644 src/test/ui/mir/mir-inlining/ice-issue-45885.rs delete mode 100644 src/test/ui/mir/mir-inlining/ice-issue-68347.rs delete mode 100644 src/test/ui/mir/mir-inlining/ice-issue-77306-1.rs delete mode 100644 src/test/ui/mir/mir-inlining/ice-issue-77306-2.rs delete mode 100644 src/test/ui/mir/mir-inlining/ice-issue-77564.rs delete mode 100644 src/test/ui/mir/mir-inlining/no-trait-method-issue-40473.rs delete mode 100644 src/test/ui/mir/mir-inlining/var-debuginfo-issue-67586.rs (limited to 'src/test/ui/mir/mir-inlining') diff --git a/src/test/ui/mir/mir-inlining/array-clone-with-generic-size.rs b/src/test/ui/mir/mir-inlining/array-clone-with-generic-size.rs deleted file mode 100644 index e36e8bd74..000000000 --- a/src/test/ui/mir/mir-inlining/array-clone-with-generic-size.rs +++ /dev/null @@ -1,11 +0,0 @@ -// Checks that we can build a clone shim for array with generic size. -// Regression test for issue #79269. -// -// build-pass -// compile-flags: -Zmir-opt-level=3 -Zvalidate-mir -#[derive(Clone)] -struct Array([T; N]); - -fn main() { - let _ = Array([0u32, 1u32, 2u32]).clone(); -} diff --git a/src/test/ui/mir/mir-inlining/ice-issue-100550-unnormalized-projection.rs b/src/test/ui/mir/mir-inlining/ice-issue-100550-unnormalized-projection.rs deleted file mode 100644 index f67b07354..000000000 --- a/src/test/ui/mir/mir-inlining/ice-issue-100550-unnormalized-projection.rs +++ /dev/null @@ -1,30 +0,0 @@ -// This test verifies that we do not ICE due to MIR inlining in case of normalization failure -// in a projection. -// -// compile-flags: --crate-type lib -C opt-level=3 -// build-pass - -pub trait Trait { - type Associated; -} -impl Trait for T { - type Associated = T; -} - -pub struct Struct(::Associated); - -pub fn foo() -> Struct -where - T: Trait, -{ - bar() -} - -#[inline] -fn bar() -> Struct { - Struct(baz()) -} - -fn baz() -> T { - unimplemented!() -} diff --git a/src/test/ui/mir/mir-inlining/ice-issue-45493.rs b/src/test/ui/mir/mir-inlining/ice-issue-45493.rs deleted file mode 100644 index 04a23212e..000000000 --- a/src/test/ui/mir/mir-inlining/ice-issue-45493.rs +++ /dev/null @@ -1,17 +0,0 @@ -// run-pass -// compile-flags:-Zmir-opt-level=3 - -trait Array { - type Item; -} - -fn foo() { - let _: *mut A::Item = std::ptr::null_mut(); -} - -struct Foo; -impl Array for Foo { type Item = i32; } - -fn main() { - foo::(); -} diff --git a/src/test/ui/mir/mir-inlining/ice-issue-45885.rs b/src/test/ui/mir/mir-inlining/ice-issue-45885.rs deleted file mode 100644 index 09b1279ef..000000000 --- a/src/test/ui/mir/mir-inlining/ice-issue-45885.rs +++ /dev/null @@ -1,29 +0,0 @@ -// run-pass -// compile-flags:-Zmir-opt-level=3 - -pub enum Enum { - A, - B, -} - -trait SliceIndex { - type Output; - fn get(&self) -> &Self::Output; -} - -impl SliceIndex for usize { - type Output = Enum; - #[inline(never)] - fn get(&self) -> &Enum { - &Enum::A - } -} - -#[inline(always)] -fn index(t: &T) -> &T::Output { - t.get() -} - -fn main() { - match *index(&0) { Enum::A => true, _ => false }; -} diff --git a/src/test/ui/mir/mir-inlining/ice-issue-68347.rs b/src/test/ui/mir/mir-inlining/ice-issue-68347.rs deleted file mode 100644 index 7c1352509..000000000 --- a/src/test/ui/mir/mir-inlining/ice-issue-68347.rs +++ /dev/null @@ -1,28 +0,0 @@ -// run-pass -// compile-flags:-Zmir-opt-level=3 -pub fn main() { - let _x: fn() = handle_debug_column; -} - -fn handle_debug_column() { - let sampler = sample_columns(); - - let foo = || { - sampler.get(17); - }; - foo(); -} - -fn sample_columns() -> impl Sampler { - ColumnGen {} -} - -struct ColumnGen {} - -trait Sampler { - fn get(&self, index: i32); -} - -impl Sampler for ColumnGen { - fn get(&self, _index: i32) {} -} diff --git a/src/test/ui/mir/mir-inlining/ice-issue-77306-1.rs b/src/test/ui/mir/mir-inlining/ice-issue-77306-1.rs deleted file mode 100644 index ef05ff9ce..000000000 --- a/src/test/ui/mir/mir-inlining/ice-issue-77306-1.rs +++ /dev/null @@ -1,17 +0,0 @@ -// run-pass -// compile-flags:-Zmir-opt-level=3 - -// Previously ICEd because we did not normalize during inlining, -// see https://github.com/rust-lang/rust/pull/77306 for more discussion. - -pub fn write() { - create()() -} - -pub fn create() -> impl FnOnce() { - || () -} - -fn main() { - write(); -} diff --git a/src/test/ui/mir/mir-inlining/ice-issue-77306-2.rs b/src/test/ui/mir/mir-inlining/ice-issue-77306-2.rs deleted file mode 100644 index cb2084013..000000000 --- a/src/test/ui/mir/mir-inlining/ice-issue-77306-2.rs +++ /dev/null @@ -1,32 +0,0 @@ -// run-pass -// compile-flags:-Zmir-opt-level=3 - -struct Cursor {} -struct TokenTree {} - -impl Iterator for Cursor { - type Item = TokenTree; - - fn next(&mut self) -> Option { - None - } -} - -fn tokenstream_probably_equal_for_proc_macro() { - fn break_tokens(_tree: TokenTree) -> impl Iterator { - let token_trees: Vec = vec![]; - token_trees.into_iter() - } - - let c1 = Cursor {}; - let c2 = Cursor {}; - - let mut t1 = c1.flat_map(break_tokens); - let mut t2 = c2.flat_map(break_tokens); - - for (_t1, _t2) in t1.by_ref().zip(t2.by_ref()) {} -} - -fn main() { - tokenstream_probably_equal_for_proc_macro(); -} diff --git a/src/test/ui/mir/mir-inlining/ice-issue-77564.rs b/src/test/ui/mir/mir-inlining/ice-issue-77564.rs deleted file mode 100644 index 0d3fbfe5d..000000000 --- a/src/test/ui/mir/mir-inlining/ice-issue-77564.rs +++ /dev/null @@ -1,38 +0,0 @@ -// run-pass -// compile-flags:-Zmir-opt-level=3 - -use std::mem::MaybeUninit; -const N: usize = 2; - -trait CollectArray: Iterator { - fn inner_array(&mut self) -> [A; N]; - fn collect_array(&mut self) -> [A; N] { - let result = self.inner_array(); - assert!(self.next().is_none()); - result - } -} - -impl CollectArray for I -where - I: Iterator, -{ - fn inner_array(&mut self) -> [A; N] { - let mut result: [MaybeUninit; N] = unsafe { MaybeUninit::uninit().assume_init() }; - for (dest, item) in result.iter_mut().zip(self) { - *dest = MaybeUninit::new(item); - } - let temp_ptr: *const [MaybeUninit; N] = &result; - unsafe { std::ptr::read(temp_ptr as *const [A; N]) } - } -} - -fn main() { - assert_eq!( - [[1, 2], [3, 4]] - .iter() - .map(|row| row.iter().collect_array()) - .collect_array(), - [[&1, &2], [&3, &4]] - ); -} diff --git a/src/test/ui/mir/mir-inlining/no-trait-method-issue-40473.rs b/src/test/ui/mir/mir-inlining/no-trait-method-issue-40473.rs deleted file mode 100644 index 8b3cb703d..000000000 --- a/src/test/ui/mir/mir-inlining/no-trait-method-issue-40473.rs +++ /dev/null @@ -1,16 +0,0 @@ -// run-pass -// compile-flags:-Zmir-opt-level=3 -pub trait Foo { - fn bar(&self) -> usize { 2 } -} - -impl Foo for () { - fn bar(&self) -> usize { 3 } -} - -// Test a case where MIR would inline the default trait method -// instead of bailing out. Issue #40473. -fn main() { - let result = ().bar(); - assert_eq!(result, 3); -} diff --git a/src/test/ui/mir/mir-inlining/var-debuginfo-issue-67586.rs b/src/test/ui/mir/mir-inlining/var-debuginfo-issue-67586.rs deleted file mode 100644 index e26206826..000000000 --- a/src/test/ui/mir/mir-inlining/var-debuginfo-issue-67586.rs +++ /dev/null @@ -1,11 +0,0 @@ -// run-pass -// compile-flags: -Z mir-opt-level=3 -C opt-level=0 -C debuginfo=2 - -#[inline(never)] -pub fn foo(bar: usize) -> usize { - std::convert::identity(bar) -} - -fn main() { - foo(0); -} -- cgit v1.2.3