Skip to content

Commit 25b4f1f

Browse files
committed
Handle ice-8850
1 parent 8f49e41 commit 25b4f1f

File tree

3 files changed

+36
-3
lines changed

3 files changed

+36
-3
lines changed

tests/ui/crashes/ice-8850.fixed

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
// run-rustfix
2+
#![allow(dead_code)]
3+
4+
fn fn_pointer_static() -> usize {
5+
static FN: fn() -> usize = || 1;
6+
7+
FN() + 1
8+
}
9+
10+
fn fn_pointer_const() -> usize {
11+
const FN: fn() -> usize = || 1;
12+
13+
FN() + 1
14+
}
15+
16+
fn deref_to_dyn_fn() -> usize {
17+
struct Derefs;
18+
impl std::ops::Deref for Derefs {
19+
type Target = dyn Fn() -> usize;
20+
21+
fn deref(&self) -> &Self::Target {
22+
&|| 2
23+
}
24+
}
25+
static FN: Derefs = Derefs;
26+
27+
FN() + 1
28+
}
29+
30+
fn main() {}

tests/ui/crashes/ice-8850.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
1+
// run-rustfix
2+
#![allow(dead_code)]
3+
14
fn fn_pointer_static() -> usize {
25
static FN: fn() -> usize = || 1;
36
let res = FN() + 1;

tests/ui/crashes/ice-8850.stderr

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
error: returning the result of a `let` binding from a block
2-
--> $DIR/ice-8850.rs:4:5
2+
--> $DIR/ice-8850.rs:7:5
33
|
44
LL | let res = FN() + 1;
55
| ------------------- unnecessary `let` binding
@@ -14,7 +14,7 @@ LL ~ FN() + 1
1414
|
1515

1616
error: returning the result of a `let` binding from a block
17-
--> $DIR/ice-8850.rs:10:5
17+
--> $DIR/ice-8850.rs:13:5
1818
|
1919
LL | let res = FN() + 1;
2020
| ------------------- unnecessary `let` binding
@@ -28,7 +28,7 @@ LL ~ FN() + 1
2828
|
2929

3030
error: returning the result of a `let` binding from a block
31-
--> $DIR/ice-8850.rs:24:5
31+
--> $DIR/ice-8850.rs:27:5
3232
|
3333
LL | let res = FN() + 1;
3434
| ------------------- unnecessary `let` binding

0 commit comments

Comments
 (0)