about summary refs log tree commit diff
path: root/src/test/ui/recursion/issue-26548-recursion-via-normalize.rs
diff options
context:
space:
mode:
authorbors <bors@rust-lang.org>2020-01-17 04:13:38 +0000
committerbors <bors@rust-lang.org>2020-01-17 04:13:38 +0000
commit91ff7c689d4a2beb45bdd45f14cb65424a46ad9c (patch)
treebc272a4b3c4ad2cc400d38da531f641617827d32 /src/test/ui/recursion/issue-26548-recursion-via-normalize.rs
parent8cacf50563ba0f60855d3465f019290d29495ec1 (diff)
parent4843f227885bf23a34cc8485173c11601b00d977 (diff)
downloadrust-91ff7c689d4a2beb45bdd45f14cb65424a46ad9c.tar.gz
rust-91ff7c689d4a2beb45bdd45f14cb65424a46ad9c.zip
Auto merge of #67731 - matthewjasper:drop-in-place-reclimit, r=eddyb
Handle recursive instantiation of drop shims

The compiler used to hang because the recursion limit was never hit.
Diffstat (limited to 'src/test/ui/recursion/issue-26548-recursion-via-normalize.rs')
-rw-r--r--src/test/ui/recursion/issue-26548-recursion-via-normalize.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/test/ui/recursion/issue-26548-recursion-via-normalize.rs b/src/test/ui/recursion/issue-26548-recursion-via-normalize.rs
new file mode 100644
index 00000000000..6ee8c0fcfda
--- /dev/null
+++ b/src/test/ui/recursion/issue-26548-recursion-via-normalize.rs
@@ -0,0 +1,13 @@
+//~ ERROR cycle detected when computing layout of
+//~| NOTE ...which requires computing layout of
+//~| NOTE ...which again requires computing layout of
+
+// build-fail
+
+trait Mirror { type It: ?Sized; }
+impl<T: ?Sized> Mirror for T { type It = Self; }
+struct S(Option<<S as Mirror>::It>);
+
+fn main() { //~ NOTE cycle used when processing `main`
+    let _s = S(None);
+}