summaryrefslogtreecommitdiffstats
path: root/tests/ui/issues/issue-48276.rs
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-17 12:19:13 +0000
commit218caa410aa38c29984be31a5229b9fa717560ee (patch)
treec54bd55eeb6e4c508940a30e94c0032fbd45d677 /tests/ui/issues/issue-48276.rs
parentReleasing progress-linux version 1.67.1+dfsg1-1~progress7.99u1. (diff)
downloadrustc-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/issues/issue-48276.rs')
-rw-r--r--tests/ui/issues/issue-48276.rs33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/ui/issues/issue-48276.rs b/tests/ui/issues/issue-48276.rs
new file mode 100644
index 000000000..f55c056fa
--- /dev/null
+++ b/tests/ui/issues/issue-48276.rs
@@ -0,0 +1,33 @@
+// Regression test for issue #48276 - ICE when self type does not match what is
+// required by a trait and regions are involved.
+
+trait MyFrom<A> {
+ fn from(a: A) -> Self;
+}
+
+struct A;
+
+impl<'a, 'b> MyFrom<A> for &'a str {
+ fn from(self: &'a Self) -> &'b str {
+ //~^ ERROR: method `from` has a `&self` declaration in the impl, but not in the trait
+ "asdf"
+ }
+}
+
+struct B;
+
+impl From<A> for B {
+ fn from(&self) -> B {
+ //~^ ERROR: method `from` has a `&self` declaration in the impl, but not in the trait
+ B
+ }
+}
+
+impl From<A> for &'static str {
+ fn from(&self) -> &'static str {
+ //~^ ERROR: method `from` has a `&self` declaration in the impl, but not in the trait
+ ""
+ }
+}
+
+fn main(){}