diff options
| author | Matthias Krüger <matthias.krueger@famsik.de> | 2021-12-03 06:24:14 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-12-03 06:24:14 +0100 |
| commit | a5ee722f1ea6f9519d213a2304cc8edcf53f4cc3 (patch) | |
| tree | a02c1d736e429df8a9423482c8f68e111a4cc89b /src/test | |
| parent | 0ccd56682578790abc045cfd0d0555f47e92f6b0 (diff) | |
| parent | 0da3a0f56eda3c360e63499b4ee452e55630d9ff (diff) | |
| download | rust-a5ee722f1ea6f9519d213a2304cc8edcf53f4cc3.tar.gz rust-a5ee722f1ea6f9519d213a2304cc8edcf53f4cc3.zip | |
Rollup merge of #91273 - Badel2:ice-index-str, r=estebank
Fix ICE #91268 by checking that the snippet ends with a `)` Fix #91268 Previously it was assumed that the last character of `snippet` will be a `)`, so using `snippet.len() - 1` as an index should be safe. However as we see in the test, it is possible to enter that branch without a closing `)`, and it will trigger the panic if the last character happens to be multibyte. The fix is to ensure that the snippet ends with `)`, and skip the suggestion otherwise.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/ui/type/issue-91268.rs | 9 | ||||
| -rw-r--r-- | src/test/ui/type/issue-91268.stderr | 50 |
2 files changed, 59 insertions, 0 deletions
diff --git a/src/test/ui/type/issue-91268.rs b/src/test/ui/type/issue-91268.rs new file mode 100644 index 00000000000..fd2733c1c54 --- /dev/null +++ b/src/test/ui/type/issue-91268.rs @@ -0,0 +1,9 @@ +// error-pattern: this file contains an unclosed delimiter +// error-pattern: cannot find type `ţ` in this scope +// error-pattern: parenthesized type parameters may only be used with a `Fn` trait +// error-pattern: type arguments are not allowed for this type +// error-pattern: mismatched types +// ignore-tidy-trailing-newlines +// `ţ` must be the last character in this file, it cannot be followed by a newline +fn main() { + 0: u8(ţ \ No newline at end of file diff --git a/src/test/ui/type/issue-91268.stderr b/src/test/ui/type/issue-91268.stderr new file mode 100644 index 00000000000..2fe6ba6248c --- /dev/null +++ b/src/test/ui/type/issue-91268.stderr @@ -0,0 +1,50 @@ +error: this file contains an unclosed delimiter + --> $DIR/issue-91268.rs:9:12 + | +LL | fn main() { + | - unclosed delimiter +LL | 0: u8(ţ + | - ^ + | | + | unclosed delimiter + +error: this file contains an unclosed delimiter + --> $DIR/issue-91268.rs:9:12 + | +LL | fn main() { + | - unclosed delimiter +LL | 0: u8(ţ + | - ^ + | | + | unclosed delimiter + +error[E0412]: cannot find type `ţ` in this scope + --> $DIR/issue-91268.rs:9:11 + | +LL | 0: u8(ţ + | ^ expecting a type here because of type ascription + +error[E0214]: parenthesized type parameters may only be used with a `Fn` trait + --> $DIR/issue-91268.rs:9:8 + | +LL | 0: u8(ţ + | ^^^^ only `Fn` traits may use parentheses + +error[E0109]: type arguments are not allowed for this type + --> $DIR/issue-91268.rs:9:11 + | +LL | 0: u8(ţ + | ^ type argument not allowed + +error[E0308]: mismatched types + --> $DIR/issue-91268.rs:9:5 + | +LL | fn main() { + | - expected `()` because of default return type +LL | 0: u8(ţ + | ^^^^^^^ expected `()`, found `u8` + +error: aborting due to 6 previous errors + +Some errors have detailed explanations: E0109, E0214, E0308, E0412. +For more information about an error, try `rustc --explain E0109`. |
