]> git.lizzy.rs Git - rust.git/commit
Rollup merge of #99651 - compiler-errors:fn-and-raw-ptr-in-const-generics, r=oli-obk
authorGuillaume Gomez <guillaume1.gomez@gmail.com>
Wed, 27 Jul 2022 15:55:04 +0000 (17:55 +0200)
committerGitHub <noreply@github.com>
Wed, 27 Jul 2022 15:55:04 +0000 (17:55 +0200)
commit9e7b7d5e1c9199f372107e0ace1733c11d09fe37
tree5ad1af218214309db5ac55732215f3969db10482
parent4ce1b0f936a070bdfca1c1fe883d192774210d7e
parent10b69ab0d20bdbbcdfc5bfe443a50cf2b12b66de
Rollup merge of #99651 - compiler-errors:fn-and-raw-ptr-in-const-generics, r=oli-obk

Deeply deny fn and raw ptrs in const generics

I think this is right -- just because we wrap a fn ptr in a wrapper type does not mean we should allow it in a const parameter.

We now reject both of these in the same way:

```
#![feature(adt_const_params)]

#[derive(Eq, PartialEq)]
struct Wrapper();

fn foo<const W: Wrapper>() {}

fn foo2<const F: fn()>() {}
```

This does regress one test (`src/test/ui/consts/refs_check_const_eq-issue-88384.stderr`), but I'm not sure it should've passed in the first place.

cc: ``@b-naber`` who introduced that test^
fixes #99641
compiler/rustc_typeck/src/check/wfcheck.rs