diff options
| author | bors <bors@rust-lang.org> | 2022-03-12 16:37:07 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2022-03-12 16:37:07 +0000 |
| commit | 22a20e3f0f952d42122370ac3628e59cd2aecfdc (patch) | |
| tree | 619b87da87ab77a11675ad344196d89a3a76273b /src | |
| parent | ed2a69c4a9f3e5535461484af6266681fd7d90d4 (diff) | |
| parent | 1853ffccbc0d48caa4c948f4b9e116e3ab83a58c (diff) | |
| download | rust-22a20e3f0f952d42122370ac3628e59cd2aecfdc.tar.gz rust-22a20e3f0f952d42122370ac3628e59cd2aecfdc.zip | |
Auto merge of #94711 - ouz-a:master3, r=oli-obk
Return early to fix ICE This fixes #94627, ICE happens because compiler tries to suggest constraining type parameter but the only constraint is implicit `std::Sized` one, so it gets removed and there is nothing to suggest resulting in ICE.
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/suggestions/constrain-suggest-ice.rs | 11 | ||||
| -rw-r--r-- | src/test/ui/suggestions/constrain-suggest-ice.stderr | 81 |
2 files changed, 92 insertions, 0 deletions
diff --git a/src/test/ui/suggestions/constrain-suggest-ice.rs b/src/test/ui/suggestions/constrain-suggest-ice.rs new file mode 100644 index 00000000000..69b874bed1b --- /dev/null +++ b/src/test/ui/suggestions/constrain-suggest-ice.rs @@ -0,0 +1,11 @@ +struct Bug<S>{ //~ ERROR parameter `S` is never used [E0392] + A: [(); { + let x: [u8; Self::W] = [0; Self::W]; //~ ERROR generic `Self` types are currently not permitted in anonymous constants + //~^ ERROR generic `Self` types are currently not permitted in anonymous constants + //~^^ ERROR the size for values of type `S` cannot be known at compilation time [E0277] + F //~ ERROR cannot find value `F` in this scope [E0425] + } +} //~ ERROR mismatched closing delimiter: `}` +//~^ ERROR mismatched closing delimiter: `}` + +fn main() {} diff --git a/src/test/ui/suggestions/constrain-suggest-ice.stderr b/src/test/ui/suggestions/constrain-suggest-ice.stderr new file mode 100644 index 00000000000..477eb278679 --- /dev/null +++ b/src/test/ui/suggestions/constrain-suggest-ice.stderr @@ -0,0 +1,81 @@ +error: mismatched closing delimiter: `}` + --> $DIR/constrain-suggest-ice.rs:2:8 + | +LL | struct Bug<S>{ + | - closing delimiter possibly meant for this +LL | A: [(); { + | ^ unclosed delimiter +... +LL | } + | ^ mismatched closing delimiter + +error: mismatched closing delimiter: `}` + --> $DIR/constrain-suggest-ice.rs:2:8 + | +LL | struct Bug<S>{ + | - closing delimiter possibly meant for this +LL | A: [(); { + | ^ unclosed delimiter +... +LL | } + | ^ mismatched closing delimiter + +error[E0425]: cannot find value `F` in this scope + --> $DIR/constrain-suggest-ice.rs:6:9 + | +LL | F + | ^ + | +help: a local variable with a similar name exists + | +LL | x + | ~ +help: you might be missing a type parameter + | +LL | struct Bug<S, F>{ + | +++ + +error: generic `Self` types are currently not permitted in anonymous constants + --> $DIR/constrain-suggest-ice.rs:3:21 + | +LL | let x: [u8; Self::W] = [0; Self::W]; + | ^^^^ + +error: generic `Self` types are currently not permitted in anonymous constants + --> $DIR/constrain-suggest-ice.rs:3:36 + | +LL | let x: [u8; Self::W] = [0; Self::W]; + | ^^^^ + +error[E0277]: the size for values of type `S` cannot be known at compilation time + --> $DIR/constrain-suggest-ice.rs:3:36 + | +LL | struct Bug<S>{ + | - this type parameter needs to be `std::marker::Sized` +LL | A: [(); { +LL | let x: [u8; Self::W] = [0; Self::W]; + | ^^^^^^^ doesn't have a size known at compile-time + | +note: required by a bound in `Bug` + --> $DIR/constrain-suggest-ice.rs:1:12 + | +LL | struct Bug<S>{ + | ^ required by this bound in `Bug` +help: consider relaxing the implicit `Sized` restriction + | +LL | struct Bug<S: ?Sized>{ + | ++++++++ + +error[E0392]: parameter `S` is never used + --> $DIR/constrain-suggest-ice.rs:1:12 + | +LL | struct Bug<S>{ + | ^ unused parameter + | + = help: consider removing `S`, referring to it in a field, or using a marker such as `PhantomData` + = help: if you intended `S` to be a const parameter, use `const S: usize` instead + +error: aborting due to 7 previous errors + +Some errors have detailed explanations: E0277, E0392, E0425. +For more information about an error, try `rustc --explain E0277`. |
