From a4b7ed7a42c716ab9f05e351f003d589124fd55d Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Wed, 17 Apr 2024 14:18:58 +0200 Subject: Adding upstream version 1.68.2+dfsg1. Signed-off-by: Daniel Baumann --- tests/run-pass-valgrind/coerce-match.rs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 tests/run-pass-valgrind/coerce-match.rs (limited to 'tests/run-pass-valgrind/coerce-match.rs') diff --git a/tests/run-pass-valgrind/coerce-match.rs b/tests/run-pass-valgrind/coerce-match.rs new file mode 100644 index 000000000..5b78f1ec7 --- /dev/null +++ b/tests/run-pass-valgrind/coerce-match.rs @@ -0,0 +1,22 @@ +// Check that coercions are propagated through match and if expressions. + +// pretty-expanded FIXME #23616 + +pub fn main() { + let _: Box<[isize]> = if true { + let b: Box<_> = Box::new([1, 2, 3]); + b + } else { + let b: Box<_> = Box::new([1]); + b + }; + + let _: Box<[isize]> = match true { + true => { let b: Box<_> = Box::new([1, 2, 3]); b } + false => { let b: Box<_> = Box::new([1]); b } + }; + + // Check we don't get over-keen at propagating coercions in the case of casts. + let x = if true { 42 } else { 42u8 } as u16; + let x = match true { true => 42, false => 42u8 } as u16; +} -- cgit v1.2.3