diff options
| author | Michael Goulet <michael@errs.io> | 2024-05-06 12:19:38 -0400 |
|---|---|---|
| committer | Michael Goulet <michael@errs.io> | 2024-05-06 12:22:15 -0400 |
| commit | 116f95bb46618cd299d3104ac1f3357893da0217 (patch) | |
| tree | 3a26306c0c0faaf0ae68c3b1a1561699242e7106 | |
| parent | 25e3949aa1b24b3f62a72c1f713830aa1d1efcd4 (diff) | |
| download | rust-116f95bb46618cd299d3104ac1f3357893da0217.tar.gz rust-116f95bb46618cd299d3104ac1f3357893da0217.zip | |
Use super_fold in RegionsToStatic visitor
| -rw-r--r-- | compiler/rustc_next_trait_solver/src/canonicalizer.rs | 2 | ||||
| -rw-r--r-- | tests/ui/traits/next-solver/canonical/const-region-infer-to-static-in-binder.rs | 8 | ||||
| -rw-r--r-- | tests/ui/traits/next-solver/canonical/const-region-infer-to-static-in-binder.stderr | 19 | ||||
| -rw-r--r-- | tests/ui/traits/next-solver/canonical/effect-var.rs (renamed from tests/ui/traits/next-solver/canonicalize-effect-var.rs) | 0 | ||||
| -rw-r--r-- | tests/ui/traits/next-solver/canonical/int-var-eq-in-response.rs (renamed from tests/ui/traits/next-solver/canonical-int-var-eq-in-response.rs) | 0 | ||||
| -rw-r--r-- | tests/ui/traits/next-solver/canonical/ty-var-eq-in-response.rs (renamed from tests/ui/traits/next-solver/canonical-ty-var-eq-in-response.rs) | 0 |
6 files changed, 28 insertions, 1 deletions
diff --git a/compiler/rustc_next_trait_solver/src/canonicalizer.rs b/compiler/rustc_next_trait_solver/src/canonicalizer.rs index 6600b92fb31..c437dedbbbc 100644 --- a/compiler/rustc_next_trait_solver/src/canonicalizer.rs +++ b/compiler/rustc_next_trait_solver/src/canonicalizer.rs @@ -455,7 +455,7 @@ impl<I: Interner> TypeFolder<I> for RegionsToStatic<I> { I::Binder<T>: TypeSuperFoldable<I>, { self.binder.shift_in(1); - let t = t.fold_with(self); + let t = t.super_fold_with(self); self.binder.shift_out(1); t } diff --git a/tests/ui/traits/next-solver/canonical/const-region-infer-to-static-in-binder.rs b/tests/ui/traits/next-solver/canonical/const-region-infer-to-static-in-binder.rs new file mode 100644 index 00000000000..33a6d7aa783 --- /dev/null +++ b/tests/ui/traits/next-solver/canonical/const-region-infer-to-static-in-binder.rs @@ -0,0 +1,8 @@ +//@ compile-flags: -Znext-solver=coherence + +#[derive(Debug)] +struct X<const FN: fn() = { || {} }>; +//~^ ERROR using function pointers as const generic parameters is forbidden +//~| ERROR using function pointers as const generic parameters is forbidden + +fn main() {} diff --git a/tests/ui/traits/next-solver/canonical/const-region-infer-to-static-in-binder.stderr b/tests/ui/traits/next-solver/canonical/const-region-infer-to-static-in-binder.stderr new file mode 100644 index 00000000000..4eef8c0ab6c --- /dev/null +++ b/tests/ui/traits/next-solver/canonical/const-region-infer-to-static-in-binder.stderr @@ -0,0 +1,19 @@ +error: using function pointers as const generic parameters is forbidden + --> $DIR/const-region-infer-to-static-in-binder.rs:4:20 + | +LL | struct X<const FN: fn() = { || {} }>; + | ^^^^ + | + = note: the only supported types are integers, `bool` and `char` + +error: using function pointers as const generic parameters is forbidden + --> $DIR/const-region-infer-to-static-in-binder.rs:4:20 + | +LL | struct X<const FN: fn() = { || {} }>; + | ^^^^ + | + = note: the only supported types are integers, `bool` and `char` + = note: duplicate diagnostic emitted due to `-Z deduplicate-diagnostics=no` + +error: aborting due to 2 previous errors + diff --git a/tests/ui/traits/next-solver/canonicalize-effect-var.rs b/tests/ui/traits/next-solver/canonical/effect-var.rs index 6d0f09bb9be..6d0f09bb9be 100644 --- a/tests/ui/traits/next-solver/canonicalize-effect-var.rs +++ b/tests/ui/traits/next-solver/canonical/effect-var.rs diff --git a/tests/ui/traits/next-solver/canonical-int-var-eq-in-response.rs b/tests/ui/traits/next-solver/canonical/int-var-eq-in-response.rs index 6c07817ff03..6c07817ff03 100644 --- a/tests/ui/traits/next-solver/canonical-int-var-eq-in-response.rs +++ b/tests/ui/traits/next-solver/canonical/int-var-eq-in-response.rs diff --git a/tests/ui/traits/next-solver/canonical-ty-var-eq-in-response.rs b/tests/ui/traits/next-solver/canonical/ty-var-eq-in-response.rs index 2f9e919da2e..2f9e919da2e 100644 --- a/tests/ui/traits/next-solver/canonical-ty-var-eq-in-response.rs +++ b/tests/ui/traits/next-solver/canonical/ty-var-eq-in-response.rs |
