Support syntax for one-line trait reuse

This commit is contained in:
aerooneqq 2025-12-23 10:34:23 +03:00
parent cec70080fd
commit 1de1885a63
20 changed files with 879 additions and 33 deletions

View file

@ -0,0 +1,46 @@
#![feature(prelude_import)]
#![no_std]
//@ pretty-compare-only
//@ pretty-mode:expanded
//@ pp-exact:delegation-impl-reuse.pp
#![allow(incomplete_features)]
#![feature(fn_delegation)]
#[macro_use]
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() {}

View file

@ -0,0 +1,18 @@
//@ pretty-compare-only
//@ pretty-mode:expanded
//@ pp-exact:delegation-impl-reuse.pp
#![allow(incomplete_features)]
#![feature(fn_delegation)]
trait Trait<T> {
fn foo(&self) {}
fn bar(&self) {}
fn baz(&self) {}
}
struct S;
reuse impl Trait<{ struct S; 0 }> for S { self.0 }
fn main() {}