fix #104390, fix ICE in in_operand for ty error
This commit is contained in:
parent
bebd57a960
commit
20ea083d87
3 changed files with 80 additions and 1 deletions
|
@ -351,7 +351,11 @@ where
|
|||
// FIXME(valtrees): check whether const qualifs should behave the same
|
||||
// way for type and mir constants.
|
||||
let uneval = match constant.literal {
|
||||
ConstantKind::Ty(ct) if matches!(ct.kind(), ty::ConstKind::Param(_)) => None,
|
||||
ConstantKind::Ty(ct)
|
||||
if matches!(ct.kind(), ty::ConstKind::Param(_) | ty::ConstKind::Error(_)) =>
|
||||
{
|
||||
None
|
||||
}
|
||||
ConstantKind::Ty(c) => bug!("expected ConstKind::Param here, found {:?}", c),
|
||||
ConstantKind::Unevaluated(uv, _) => Some(uv),
|
||||
ConstantKind::Val(..) => None,
|
||||
|
|
10
src/test/ui/consts/const-eval/issue-104390.rs
Normal file
10
src/test/ui/consts/const-eval/issue-104390.rs
Normal file
|
@ -0,0 +1,10 @@
|
|||
fn f1() -> impl Sized { & 2E } //~ ERROR expected at least one digit in exponent
|
||||
fn f2() -> impl Sized { && 2E } //~ ERROR expected at least one digit in exponent
|
||||
fn f3() -> impl Sized { &'a 2E } //~ ERROR expected at least one digit in exponent
|
||||
//~^ ERROR borrow expressions cannot be annotated with lifetimes
|
||||
fn f4() -> impl Sized { &'static 2E } //~ ERROR expected at least one digit in exponent
|
||||
//~^ ERROR borrow expressions cannot be annotated with lifetimes
|
||||
fn f5() -> impl Sized { *& 2E } //~ ERROR expected at least one digit in exponent
|
||||
fn f6() -> impl Sized { &'_ 2E } //~ ERROR expected at least one digit in exponent
|
||||
//~^ ERROR borrow expressions cannot be annotated with lifetimes
|
||||
fn main() {}
|
65
src/test/ui/consts/const-eval/issue-104390.stderr
Normal file
65
src/test/ui/consts/const-eval/issue-104390.stderr
Normal file
|
@ -0,0 +1,65 @@
|
|||
error: expected at least one digit in exponent
|
||||
--> $DIR/issue-104390.rs:1:27
|
||||
|
|
||||
LL | fn f1() -> impl Sized { & 2E }
|
||||
| ^^
|
||||
|
||||
error: expected at least one digit in exponent
|
||||
--> $DIR/issue-104390.rs:2:28
|
||||
|
|
||||
LL | fn f2() -> impl Sized { && 2E }
|
||||
| ^^
|
||||
|
||||
error: expected at least one digit in exponent
|
||||
--> $DIR/issue-104390.rs:3:29
|
||||
|
|
||||
LL | fn f3() -> impl Sized { &'a 2E }
|
||||
| ^^
|
||||
|
||||
error: expected at least one digit in exponent
|
||||
--> $DIR/issue-104390.rs:5:34
|
||||
|
|
||||
LL | fn f4() -> impl Sized { &'static 2E }
|
||||
| ^^
|
||||
|
||||
error: expected at least one digit in exponent
|
||||
--> $DIR/issue-104390.rs:7:28
|
||||
|
|
||||
LL | fn f5() -> impl Sized { *& 2E }
|
||||
| ^^
|
||||
|
||||
error: expected at least one digit in exponent
|
||||
--> $DIR/issue-104390.rs:8:29
|
||||
|
|
||||
LL | fn f6() -> impl Sized { &'_ 2E }
|
||||
| ^^
|
||||
|
||||
error: borrow expressions cannot be annotated with lifetimes
|
||||
--> $DIR/issue-104390.rs:3:25
|
||||
|
|
||||
LL | fn f3() -> impl Sized { &'a 2E }
|
||||
| ^--^^^
|
||||
| |
|
||||
| annotated with lifetime here
|
||||
| help: remove the lifetime annotation
|
||||
|
||||
error: borrow expressions cannot be annotated with lifetimes
|
||||
--> $DIR/issue-104390.rs:5:25
|
||||
|
|
||||
LL | fn f4() -> impl Sized { &'static 2E }
|
||||
| ^-------^^^
|
||||
| |
|
||||
| annotated with lifetime here
|
||||
| help: remove the lifetime annotation
|
||||
|
||||
error: borrow expressions cannot be annotated with lifetimes
|
||||
--> $DIR/issue-104390.rs:8:25
|
||||
|
|
||||
LL | fn f6() -> impl Sized { &'_ 2E }
|
||||
| ^--^^^
|
||||
| |
|
||||
| annotated with lifetime here
|
||||
| help: remove the lifetime annotation
|
||||
|
||||
error: aborting due to 9 previous errors
|
||||
|
Loading…
Add table
Add a link
Reference in a new issue