diff options
| author | lcnr <rust@lcnr.de> | 2023-12-14 14:47:41 +0100 |
|---|---|---|
| committer | lcnr <rust@lcnr.de> | 2023-12-14 15:22:37 +0100 |
| commit | 094707087171bb698d47aba807cd7d78c58e63ab (patch) | |
| tree | 80d6a6e80c7b2833500cca646811f7068c8faad7 /tests/ui/traits/next-solver/overflow/global-cache.rs | |
| parent | 11d16c4082be25fd42b48b37e199f18b4dfe51ed (diff) | |
| download | rust-094707087171bb698d47aba807cd7d78c58e63ab.tar.gz rust-094707087171bb698d47aba807cd7d78c58e63ab.zip | |
consistently use "next solver" instead of "new solver"
Diffstat (limited to 'tests/ui/traits/next-solver/overflow/global-cache.rs')
| -rw-r--r-- | tests/ui/traits/next-solver/overflow/global-cache.rs | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/tests/ui/traits/next-solver/overflow/global-cache.rs b/tests/ui/traits/next-solver/overflow/global-cache.rs new file mode 100644 index 00000000000..fe4032ca62e --- /dev/null +++ b/tests/ui/traits/next-solver/overflow/global-cache.rs @@ -0,0 +1,23 @@ +// compile-flags: -Znext-solver + +// Check that we consider the reached depth of global cache +// entries when detecting overflow. We would otherwise be unstable +// wrt to incremental compilation. +#![recursion_limit = "9"] + +trait Trait {} + +struct Inc<T>(T); + +impl<T: Trait> Trait for Inc<T> {} +impl Trait for () {} + +fn impls_trait<T: Trait>() {} + +type Four<T> = Inc<Inc<Inc<Inc<T>>>>; + +fn main() { + impls_trait::<Four<Four<()>>>(); + impls_trait::<Four<Four<Four<Four<()>>>>>(); + //~^ ERROR overflow evaluating the requirement +} |
