about summary refs log tree commit diff
path: root/tests/ui/const-generics/min_const_generics/macro-fail-const.rs
blob: 619d6de7ad2cdf3c56e19a50cf528ea54a6ea958 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
trait Marker<const N: usize> {}
struct Example<const N: usize>;
impl<const N: usize> Marker<N> for Example<N> {}

fn make_marker() -> impl Marker<gimme_a_const!(marker)> {
  //~^ ERROR: type provided when a constant was expected
  //~| ERROR: type provided when a constant was expected
  Example::<gimme_a_const!(marker)>
  //~^ ERROR: type provided when a constant was expected
}

fn main() {
  let _ok = Example::<{
    #[macro_export]
    macro_rules! gimme_a_const {
      ($rusty: ident) => {{ let $rusty = 3; *&$rusty }}
      //~^ ERROR expected type
      //~| ERROR expected type
    }
    gimme_a_const!(run)
  }>;
  let _ok = Example::<{gimme_a_const!(marker)}>;
}