Open CohenArthur opened 3 months ago
I tried this code:
// ---- gccrs additions #[lang = "sized"] trait Sized {} // ---- gccrs additions #[lang = "clone"] pub trait Clone: Sized { #[stable(feature = "rust1", since = "1.0.0")] #[must_use = "cloning is often expensive and is not expected to have side effects"] fn clone(&self) -> Self; #[inline] #[stable(feature = "rust1", since = "1.0.0")] fn clone_from(&mut self, source: &Self) { *self = source.clone() } } mod impls { use super::Clone; macro_rules! impl_clone { ($($t:ty)*) => { $( #[stable(feature = "rust1", since = "1.0.0")] impl Clone for $t { #[inline] fn clone(&self) -> Self { *self } } )* } } impl_clone! { usize } #[stable(feature = "rust1", since = "1.0.0")] impl<T: ?Sized> Clone for *const T { #[inline] fn clone(&self) -> Self { *self } } }
if the last impl block is commented out, or put before the macro call, like so:
impl
// ---- gccrs additions #[lang = "sized"] trait Sized {} // ---- gccrs additions #[lang = "clone"] pub trait Clone: Sized { #[stable(feature = "rust1", since = "1.0.0")] #[must_use = "cloning is often expensive and is not expected to have side effects"] fn clone(&self) -> Self; #[inline] #[stable(feature = "rust1", since = "1.0.0")] fn clone_from(&mut self, source: &Self) { *self = source.clone() } } mod impls { use super::Clone; macro_rules! impl_clone { ($($t:ty)*) => { $( #[stable(feature = "rust1", since = "1.0.0")] impl Clone for $t { #[inline] fn clone(&self) -> Self { *self } } )* } } #[stable(feature = "rust1", since = "1.0.0")] impl<T: ?Sized> Clone for *const T { #[inline] fn clone(&self) -> Self { *self } } impl_clone! { usize } }
...then the code works. :/
we're also hitting this in the fmt module of core 1.49
fmt
core
I tried this code:
if the last
impl
block is commented out, or put before the macro call, like so:...then the code works. :/