summaryrefslogtreecommitdiffstats
path: root/src/test/ui/type_length_limit.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/test/ui/type_length_limit.rs29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/test/ui/type_length_limit.rs b/src/test/ui/type_length_limit.rs
new file mode 100644
index 000000000..ce6fdf811
--- /dev/null
+++ b/src/test/ui/type_length_limit.rs
@@ -0,0 +1,29 @@
+// build-fail
+// error-pattern: reached the type-length limit while instantiating
+// compile-flags: -Copt-level=0
+// normalize-stderr-test: ".nll/" -> "/"
+
+// Test that the type length limit can be changed.
+// The exact type depends on optimizations, so disable them.
+
+#![allow(dead_code)]
+#![type_length_limit="4"]
+
+macro_rules! link {
+ ($id:ident, $t:ty) => {
+ pub type $id = ($t, $t, $t);
+ }
+}
+
+link! { A, B }
+link! { B, C }
+link! { C, D }
+link! { D, E }
+link! { E, F }
+link! { F, G }
+
+pub struct G;
+
+fn main() {
+ drop::<Option<A>>(None);
+}