Skip to content

Commit 90d1b7b

Browse files
hoshinolinajannau
authored andcommitted
rust: init: Support type paths in pin_init!() and friends
This makes directly initializing structures with a type name that isn't in the current scope work properly. Signed-off-by: Asahi Lina <lina@asahilina.net>
1 parent 9d28738 commit 90d1b7b

1 file changed

Lines changed: 12 additions & 12 deletions

File tree

rust/kernel/init.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -553,12 +553,12 @@ macro_rules! stack_try_pin_init {
553553
// module `__internal` inside of `init/__internal.rs`.
554554
#[macro_export]
555555
macro_rules! pin_init {
556-
($(&$this:ident in)? $t:ident $(::<$($generics:ty),* $(,)?>)? {
556+
($(&$this:ident in)? $t:ident $(::$p:ident)* $(::<$($generics:ty),* $(,)?>)? {
557557
$($fields:tt)*
558558
}) => {
559559
$crate::__init_internal!(
560560
@this($($this)?),
561-
@typ($t $(::<$($generics),*>)?),
561+
@typ($t $(::$p)* $(::<$($generics),*>)?),
562562
@fields($($fields)*),
563563
@error(::core::convert::Infallible),
564564
@data(PinData, use_data),
@@ -609,12 +609,12 @@ macro_rules! pin_init {
609609
// module `__internal` inside of `init/__internal.rs`.
610610
#[macro_export]
611611
macro_rules! try_pin_init {
612-
($(&$this:ident in)? $t:ident $(::<$($generics:ty),* $(,)?>)? {
612+
($(&$this:ident in)? $t:ident $(::$p:ident)* $(::<$($generics:ty),* $(,)?>)? {
613613
$($fields:tt)*
614614
}) => {
615615
$crate::__init_internal!(
616616
@this($($this)?),
617-
@typ($t $(::<$($generics),*>)? ),
617+
@typ($t $(::$p)* $(::<$($generics),*>)? ),
618618
@fields($($fields)*),
619619
@error($crate::error::Error),
620620
@data(PinData, use_data),
@@ -623,12 +623,12 @@ macro_rules! try_pin_init {
623623
@munch_fields($($fields)*),
624624
)
625625
};
626-
($(&$this:ident in)? $t:ident $(::<$($generics:ty),* $(,)?>)? {
626+
($(&$this:ident in)? $t:ident $(::$p:ident)* $(::<$($generics:ty),* $(,)?>)? {
627627
$($fields:tt)*
628628
}? $err:ty) => {
629629
$crate::__init_internal!(
630630
@this($($this)?),
631-
@typ($t $(::<$($generics),*>)? ),
631+
@typ($t $(::$p)* $(::<$($generics),*>)? ),
632632
@fields($($fields)*),
633633
@error($err),
634634
@data(PinData, use_data),
@@ -658,12 +658,12 @@ macro_rules! try_pin_init {
658658
// module `__internal` inside of `init/__internal.rs`.
659659
#[macro_export]
660660
macro_rules! init {
661-
($(&$this:ident in)? $t:ident $(::<$($generics:ty),* $(,)?>)? {
661+
($(&$this:ident in)? $t:ident $(::$p:ident)* $(::<$($generics:ty),* $(,)?>)? {
662662
$($fields:tt)*
663663
}) => {
664664
$crate::__init_internal!(
665665
@this($($this)?),
666-
@typ($t $(::<$($generics),*>)?),
666+
@typ($t $(::$p)* $(::<$($generics),*>)?),
667667
@fields($($fields)*),
668668
@error(::core::convert::Infallible),
669669
@data(InitData, /*no use_data*/),
@@ -709,12 +709,12 @@ macro_rules! init {
709709
// module `__internal` inside of `init/__internal.rs`.
710710
#[macro_export]
711711
macro_rules! try_init {
712-
($(&$this:ident in)? $t:ident $(::<$($generics:ty),* $(,)?>)? {
712+
($(&$this:ident in)? $t:ident $(::$p:ident)* $(::<$($generics:ty),* $(,)?>)? {
713713
$($fields:tt)*
714714
}) => {
715715
$crate::__init_internal!(
716716
@this($($this)?),
717-
@typ($t $(::<$($generics),*>)?),
717+
@typ($t $(::$p)* $(::<$($generics),*>)?),
718718
@fields($($fields)*),
719719
@error($crate::error::Error),
720720
@data(InitData, /*no use_data*/),
@@ -723,12 +723,12 @@ macro_rules! try_init {
723723
@munch_fields($($fields)*),
724724
)
725725
};
726-
($(&$this:ident in)? $t:ident $(::<$($generics:ty),* $(,)?>)? {
726+
($(&$this:ident in)? $t:ident $(::$p:ident)* $(::<$($generics:ty),* $(,)?>)? {
727727
$($fields:tt)*
728728
}? $err:ty) => {
729729
$crate::__init_internal!(
730730
@this($($this)?),
731-
@typ($t $(::<$($generics),*>)?),
731+
@typ($t $(::$p)* $(::<$($generics),*>)?),
732732
@fields($($fields)*),
733733
@error($err),
734734
@data(InitData, /*no use_data*/),

0 commit comments

Comments
 (0)