]> git.lizzy.rs Git - rust.git/blobdiff - src/test/ui/recursion/issue-38591-non-regular-dropck-recursion.rs
Auto merge of #101768 - sunfishcode:sunfishcode/wasi-stdio-lock-asfd, r=joshtriplett
[rust.git] / src / test / ui / recursion / issue-38591-non-regular-dropck-recursion.rs
index c857eb459b8de0af33d9b3c94a26efdf56fa12bf..c9e93174e20fe63dac9c1fc46b1901f3641aac58 100644 (file)
@@ -1,18 +1,14 @@
-// Dropck shouldn't hit a recursion limit from checking `S<u32>` since it has
-// no free regions or type parameters.
-// Codegen however, has to error for the infinitely many `drop_in_place`
-// functions it has been asked to create.
-
-// build-fail
-// normalize-stderr-test: ".nll/" -> "/"
-// compile-flags: -Zmir-opt-level=0
+// `S` is infinitely recursing so it's not possible to generate a finite
+// drop impl (ignoring polymorphization).
+//
+// Dropck should therefore detect that this is the case and eagerly error.
 
 struct S<T> {
     t: T,
     s: Box<S<fn(u: T)>>,
 }
 
-fn f(x: S<u32>) {}
+fn f(x: S<u32>) {} //~ ERROR overflow while adding drop-check rules for S<u32>
 
 fn main() {
     // Force instantiation.