mirror of
https://github.com/rust-lang/rust.git
synced 2025-04-28 11:07:42 +00:00
Rollup merge of #112481 - compiler-errors:new-solver-ignore-bad-tests, r=lqd
Ignore tests that hang in new solver
This makes it easier to run `--compare-mode=next-solver`, and we can revisit these tests later to find out how to make them less overflowy 😅
r? `@lcnr`
This commit is contained in:
commit
dcdfff61d2
@ -1,4 +1,5 @@
|
|||||||
// build-pass
|
// build-pass
|
||||||
|
// ignore-compare-mode-next-solver (hangs)
|
||||||
|
|
||||||
// Closures include captured types twice in a type tree.
|
// Closures include captured types twice in a type tree.
|
||||||
//
|
//
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
// build-fail
|
// build-fail
|
||||||
// normalize-stderr-test: ".nll/" -> "/"
|
// normalize-stderr-test: ".nll/" -> "/"
|
||||||
|
// ignore-compare-mode-next-solver (hangs)
|
||||||
|
|
||||||
trait Mirror {
|
trait Mirror {
|
||||||
type Image;
|
type Image;
|
||||||
|
@ -1,11 +1,11 @@
|
|||||||
error: reached the recursion limit while instantiating `<(&(&(..., ...), ...), ...) as Foo>::recurse`
|
error: reached the recursion limit while instantiating `<(&(&(..., ...), ...), ...) as Foo>::recurse`
|
||||||
--> $DIR/issue-37311.rs:17:9
|
--> $DIR/issue-37311.rs:18:9
|
||||||
|
|
|
|
||||||
LL | (self, self).recurse();
|
LL | (self, self).recurse();
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
|
|
|
||||||
note: `<T as Foo>::recurse` defined here
|
note: `<T as Foo>::recurse` defined here
|
||||||
--> $DIR/issue-37311.rs:16:5
|
--> $DIR/issue-37311.rs:17:5
|
||||||
|
|
|
|
||||||
LL | fn recurse(&self) {
|
LL | fn recurse(&self) {
|
||||||
| ^^^^^^^^^^^^^^^^^
|
| ^^^^^^^^^^^^^^^^^
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
// run-pass
|
// run-pass
|
||||||
|
// ignore-compare-mode-next-solver (hangs)
|
||||||
|
|
||||||
//! This snippet causes the type length to blowup exponentially,
|
//! This snippet causes the type length to blowup exponentially,
|
||||||
//! so check that we don't accidentally exceed the type length limit.
|
//! so check that we don't accidentally exceed the type length limit.
|
||||||
// FIXME: Once the size of iterator adaptors is further reduced,
|
// FIXME: Once the size of iterator adaptors is further reduced,
|
||||||
|
@ -2,6 +2,7 @@
|
|||||||
// compile-flags: -Copt-level=0
|
// compile-flags: -Copt-level=0
|
||||||
// normalize-stderr-test: "long-type-\d+" -> "long-type-hash"
|
// normalize-stderr-test: "long-type-\d+" -> "long-type-hash"
|
||||||
//~^^^ ERROR overflow evaluating the requirement
|
//~^^^ ERROR overflow evaluating the requirement
|
||||||
|
// ignore-compare-mode-next-solver (hangs)
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
let mut iter = 0u8..1;
|
let mut iter = 0u8..1;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
warning: function cannot return without recursing
|
warning: function cannot return without recursing
|
||||||
--> $DIR/issue-83150.rs:11:1
|
--> $DIR/issue-83150.rs:12:1
|
||||||
|
|
|
|
||||||
LL | fn func<T: Iterator<Item = u8>>(iter: &mut T) {
|
LL | fn func<T: Iterator<Item = u8>>(iter: &mut T) {
|
||||||
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
|
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cannot return without recursing
|
||||||
@ -9,10 +9,10 @@ LL | func(&mut iter.map(|x| x + 1))
|
|||||||
= help: a `loop` may express intention better if this is on purpose
|
= help: a `loop` may express intention better if this is on purpose
|
||||||
= note: `#[warn(unconditional_recursion)]` on by default
|
= note: `#[warn(unconditional_recursion)]` on by default
|
||||||
|
|
||||||
error[E0275]: overflow evaluating the requirement `Map<&mut std::ops::Range<u8>, [closure@$DIR/issue-83150.rs:12:24: 12:27]>: Iterator`
|
error[E0275]: overflow evaluating the requirement `Map<&mut std::ops::Range<u8>, [closure@$DIR/issue-83150.rs:13:24: 13:27]>: Iterator`
|
||||||
|
|
|
|
||||||
= help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`issue_83150`)
|
= help: consider increasing the recursion limit by adding a `#![recursion_limit = "256"]` attribute to your crate (`issue_83150`)
|
||||||
= note: required for `&mut Map<&mut std::ops::Range<u8>, [closure@$DIR/issue-83150.rs:12:24: 12:27]>` to implement `Iterator`
|
= note: required for `&mut Map<&mut std::ops::Range<u8>, [closure@$DIR/issue-83150.rs:13:24: 13:27]>` to implement `Iterator`
|
||||||
= note: 65 redundant requirements hidden
|
= note: 65 redundant requirements hidden
|
||||||
= note: required for `&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<..., ...>, ...>, ...>, ...>, ...>, ...>, ...>` to implement `Iterator`
|
= note: required for `&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<&mut Map<..., ...>, ...>, ...>, ...>, ...>, ...>, ...>` to implement `Iterator`
|
||||||
= note: the full type name has been written to '$TEST_BUILD_DIR/recursion/issue-83150/issue-83150.long-type-hash.txt'
|
= note: the full type name has been written to '$TEST_BUILD_DIR/recursion/issue-83150/issue-83150.long-type-hash.txt'
|
||||||
|
@ -3,6 +3,7 @@
|
|||||||
// error-pattern: overflow evaluating the requirement `<std::iter::Empty<()> as Iterator>::Item == ()`
|
// error-pattern: overflow evaluating the requirement `<std::iter::Empty<()> as Iterator>::Item == ()`
|
||||||
// error-pattern: function cannot return without recursing
|
// error-pattern: function cannot return without recursing
|
||||||
// normalize-stderr-test: "long-type-\d+" -> "long-type-hash"
|
// normalize-stderr-test: "long-type-\d+" -> "long-type-hash"
|
||||||
|
// ignore-compare-mode-next-solver (hangs)
|
||||||
|
|
||||||
// Regression test for #91949.
|
// Regression test for #91949.
|
||||||
// This hanged *forever* on 1.56, fixed by #90423.
|
// This hanged *forever* on 1.56, fixed by #90423.
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
warning: function cannot return without recursing
|
warning: function cannot return without recursing
|
||||||
--> $DIR/issue-91949-hangs-on-recursion.rs:23:1
|
--> $DIR/issue-91949-hangs-on-recursion.rs:24:1
|
||||||
|
|
|
|
||||||
LL | / fn recurse<T>(elements: T) -> Vec<char>
|
LL | / fn recurse<T>(elements: T) -> Vec<char>
|
||||||
LL | | where
|
LL | | where
|
||||||
@ -16,7 +16,7 @@ error[E0275]: overflow evaluating the requirement `<std::iter::Empty<()> as Iter
|
|||||||
|
|
|
|
||||||
= help: consider increasing the recursion limit by adding a `#![recursion_limit = "512"]` attribute to your crate (`issue_91949_hangs_on_recursion`)
|
= help: consider increasing the recursion limit by adding a `#![recursion_limit = "512"]` attribute to your crate (`issue_91949_hangs_on_recursion`)
|
||||||
note: required for `IteratorOfWrapped<(), std::iter::Empty<()>>` to implement `Iterator`
|
note: required for `IteratorOfWrapped<(), std::iter::Empty<()>>` to implement `Iterator`
|
||||||
--> $DIR/issue-91949-hangs-on-recursion.rs:16:32
|
--> $DIR/issue-91949-hangs-on-recursion.rs:17:32
|
||||||
|
|
|
|
||||||
LL | impl<T, I: Iterator<Item = T>> Iterator for IteratorOfWrapped<T, I> {
|
LL | impl<T, I: Iterator<Item = T>> Iterator for IteratorOfWrapped<T, I> {
|
||||||
| -------- ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^
|
| -------- ^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^
|
||||||
|
Loading…
Reference in New Issue
Block a user