diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-04-17 12:19:13 +0000 |
commit | 218caa410aa38c29984be31a5229b9fa717560ee (patch) | |
tree | c54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/ui/reachable/auxiliary | |
parent | Releasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff) | |
download | rustc-218caa410aa38c29984be31a5229b9fa717560ee.tar.xz rustc-218caa410aa38c29984be31a5229b9fa717560ee.zip |
Merging upstream version 1.68.2+dfsg1.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'tests/ui/reachable/auxiliary')
-rw-r--r-- | tests/ui/reachable/auxiliary/issue-11225-1.rs | 18 | ||||
-rw-r--r-- | tests/ui/reachable/auxiliary/issue-11225-2.rs | 28 | ||||
-rw-r--r-- | tests/ui/reachable/auxiliary/issue-11225-3.rs | 28 | ||||
-rw-r--r-- | tests/ui/reachable/auxiliary/unreachable_variant.rs | 5 |
4 files changed, 79 insertions, 0 deletions
diff --git a/tests/ui/reachable/auxiliary/issue-11225-1.rs b/tests/ui/reachable/auxiliary/issue-11225-1.rs new file mode 100644 index 000000000..2c6f899a0 --- /dev/null +++ b/tests/ui/reachable/auxiliary/issue-11225-1.rs @@ -0,0 +1,18 @@ +mod inner { + pub trait Trait { + fn f(&self) { f(); } + fn f_ufcs(&self) { f_ufcs(); } + } + + impl Trait for isize {} + + fn f() {} + fn f_ufcs() {} +} + +pub fn foo<T: inner::Trait>(t: T) { + t.f(); +} +pub fn foo_ufcs<T: inner::Trait>(t: T) { + T::f_ufcs(&t); +} diff --git a/tests/ui/reachable/auxiliary/issue-11225-2.rs b/tests/ui/reachable/auxiliary/issue-11225-2.rs new file mode 100644 index 000000000..4381f0a4e --- /dev/null +++ b/tests/ui/reachable/auxiliary/issue-11225-2.rs @@ -0,0 +1,28 @@ +use inner::Trait; + +mod inner { + pub struct Foo; + pub trait Trait { + fn f(&self); + fn f_ufcs(&self); + } + + impl Trait for Foo { + fn f(&self) { } + fn f_ufcs(&self) { } + } +} + +pub trait Outer { + fn foo<T: Trait>(&self, t: T) { t.f(); } + fn foo_ufcs<T: Trait>(&self, t: T) { T::f(&t); } +} + +impl Outer for isize {} + +pub fn foo<T: Outer>(t: T) { + t.foo(inner::Foo); +} +pub fn foo_ufcs<T: Outer>(t: T) { + T::foo_ufcs(&t, inner::Foo) +} diff --git a/tests/ui/reachable/auxiliary/issue-11225-3.rs b/tests/ui/reachable/auxiliary/issue-11225-3.rs new file mode 100644 index 000000000..266e42a10 --- /dev/null +++ b/tests/ui/reachable/auxiliary/issue-11225-3.rs @@ -0,0 +1,28 @@ +trait PrivateTrait { + fn private_trait_method(&self); + fn private_trait_method_ufcs(&self); +} + +struct PrivateStruct; + +impl PrivateStruct { + fn private_inherent_method(&self) { } + fn private_inherent_method_ufcs(&self) { } +} + +impl PrivateTrait for PrivateStruct { + fn private_trait_method(&self) { } + fn private_trait_method_ufcs(&self) { } +} + +#[inline] +pub fn public_inlinable_function() { + PrivateStruct.private_trait_method(); + PrivateStruct.private_inherent_method(); +} + +#[inline] +pub fn public_inlinable_function_ufcs() { + PrivateStruct::private_trait_method(&PrivateStruct); + PrivateStruct::private_inherent_method(&PrivateStruct); +} diff --git a/tests/ui/reachable/auxiliary/unreachable_variant.rs b/tests/ui/reachable/auxiliary/unreachable_variant.rs new file mode 100644 index 000000000..4e94a4b5e --- /dev/null +++ b/tests/ui/reachable/auxiliary/unreachable_variant.rs @@ -0,0 +1,5 @@ +mod super_sekrit { + pub enum sooper_sekrit { + quux, baz + } +} |