Currently all core and std macros are automatically added to the prelude via #[macro_use]. However a situation arose where we want to add a new macro `assert_matches` but don't want to pull it into the standard prelude for compatibility reasons. By explicitly exporting the macros found in the core and std crates we get to decide on a per macro basis and can later add them via the rust_20xx preludes.
45 lines
701 B
Rust
45 lines
701 B
Rust
#![feature(prelude_import)]
|
|
#![no_std]
|
|
//@ pretty-compare-only
|
|
//@ pretty-mode:expanded
|
|
//@ pp-exact:delegation-impl-reuse.pp
|
|
|
|
#![allow(incomplete_features)]
|
|
#![feature(fn_delegation)]
|
|
extern crate std;
|
|
#[prelude_import]
|
|
use ::std::prelude::rust_2015::*;
|
|
|
|
trait Trait<T> {
|
|
fn foo(&self) {}
|
|
fn bar(&self) {}
|
|
fn baz(&self) {}
|
|
}
|
|
|
|
struct S;
|
|
|
|
impl Trait<{
|
|
struct S;
|
|
0
|
|
}> for S {
|
|
reuse Trait<{
|
|
struct S;
|
|
0
|
|
}>::foo {
|
|
self.0
|
|
}
|
|
reuse Trait<{
|
|
struct S;
|
|
0
|
|
}>::bar {
|
|
self.0
|
|
}
|
|
reuse Trait<{
|
|
struct S;
|
|
0
|
|
}>::baz {
|
|
self.0
|
|
}
|
|
}
|
|
|
|
fn main() {}
|