about summary refs log tree commit diff
path: root/tests/ui/structs/method-chain-expression-failure.rs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/ui/structs/method-chain-expression-failure.rs')
-rw-r--r--tests/ui/structs/method-chain-expression-failure.rs31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/ui/structs/method-chain-expression-failure.rs b/tests/ui/structs/method-chain-expression-failure.rs
new file mode 100644
index 00000000000..43ebc5bac8c
--- /dev/null
+++ b/tests/ui/structs/method-chain-expression-failure.rs
@@ -0,0 +1,31 @@
+struct A;
+struct B;
+struct C;
+struct D;
+struct E;
+
+impl A {
+    fn b(&self) -> B { B }
+    fn foo(&self) {}
+}
+
+impl B {
+    fn c(&self) -> C { C }
+}
+
+impl C {
+    fn d(&self) -> D { D }
+    fn foo(&self) {}
+}
+
+impl D {
+    fn e(&self) -> E { E }
+}
+
+impl E {
+    fn f(&self) {}
+}
+fn main() {
+    A.b().c().d().e().foo();
+//~^ ERROR no method named `foo` found for struct `E` in the current scope
+}