Files
rust/tests/ui/pattern/rfc-3627-match-ergonomics-2024/experimental/trait-selection-sanity.rs
dianne b350d94877 reorganize and comment some of the experimental pattern typing tests
This only includes previously existing tests (with a couple duplicates
removed). I plan on adding more comprarisons where the rules differ
once I've updated the pattern typing rules. I also haven't touched the
tests for new rules in old editions; I'll see how best to handle that
once those rules are updated as well.
2025-01-08 00:07:18 -08:00

31 lines
708 B
Rust

//@ edition: 2024
//@ revisions: with_impl without_impl
//@[with_impl] run-pass
//! Sanity check that experimental new pattern typing rules work as expected with trait selection
fn main() {
fn generic<R: Ref>() -> (R, bool) {
R::meow()
}
trait Ref: Sized {
fn meow() -> (Self, bool);
}
#[cfg(with_impl)]
impl Ref for &'static [(); 0] {
fn meow() -> (Self, bool) {
(&[], false)
}
}
impl Ref for &'static mut [(); 0] {
fn meow() -> (Self, bool) {
(&mut [], true)
}
}
let (&_, b) = generic(); //[without_impl]~ ERROR: the trait bound `&_: main::Ref` is not satisfied [E0277]
assert!(!b);
}