User type annotations for free consts in pattern position
This commit is contained in:
parent
6e23095adf
commit
bfe3d54d81
3 changed files with 26 additions and 2 deletions
|
|
@ -553,8 +553,7 @@ impl<'a, 'tcx> PatCtxt<'a, 'tcx> {
|
|||
let res = self.typeck_results.qpath_res(qpath, id);
|
||||
|
||||
let (def_id, user_ty) = match res {
|
||||
Res::Def(DefKind::Const, def_id) => (def_id, None),
|
||||
Res::Def(DefKind::AssocConst, def_id) => {
|
||||
Res::Def(DefKind::Const, def_id) | Res::Def(DefKind::AssocConst, def_id) => {
|
||||
(def_id, self.typeck_results.user_provided_types().get(id))
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,14 @@
|
|||
#![feature(generic_const_items)]
|
||||
#![expect(incomplete_features)]
|
||||
|
||||
const FOO<'a: 'static>: usize = 10;
|
||||
|
||||
fn bar<'a>() {
|
||||
match 10_usize {
|
||||
FOO::<'a> => todo!(),
|
||||
//~^ ERROR: lifetime may not live long enough
|
||||
_ => todo!(),
|
||||
}
|
||||
}
|
||||
|
||||
fn main() {}
|
||||
|
|
@ -0,0 +1,11 @@
|
|||
error: lifetime may not live long enough
|
||||
--> $DIR/user_type_annotations_pattern.rs:8:9
|
||||
|
|
||||
LL | fn bar<'a>() {
|
||||
| -- lifetime `'a` defined here
|
||||
LL | match 10_usize {
|
||||
LL | FOO::<'a> => todo!(),
|
||||
| ^^^^^^^^^ requires that `'a` must outlive `'static`
|
||||
|
||||
error: aborting due to 1 previous error
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue