forked from rust-lang/rust
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rollup merge of rust-lang#91273 - Badel2:ice-index-str, r=estebank
Fix ICE rust-lang#91268 by checking that the snippet ends with a `)` Fix rust-lang#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.
- Loading branch information
Showing
3 changed files
with
72 additions
and
9 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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(ţ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -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`. |