35 lines
488 B
Rust
35 lines
488 B
Rust
//@ revisions: rpass1 rpass2
|
|
|
|
// issue#112680
|
|
|
|
#![feature(decl_macro)]
|
|
|
|
pub trait T {
|
|
type Key;
|
|
fn index_from_key(key: Self::Key) -> usize;
|
|
}
|
|
|
|
pub macro m($key_ty:ident, $val_ty:ident) {
|
|
struct $key_ty {
|
|
inner: usize,
|
|
}
|
|
|
|
impl T for $val_ty {
|
|
type Key = $key_ty;
|
|
|
|
fn index_from_key(key: Self::Key) -> usize {
|
|
key.inner
|
|
}
|
|
}
|
|
}
|
|
|
|
m!(TestId, Test);
|
|
|
|
#[cfg(rpass1)]
|
|
struct Test(u32);
|
|
|
|
#[cfg(rpass2)]
|
|
struct Test;
|
|
|
|
fn main() {}
|