Skip to content

Commit 8d684f3

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 f948f32 commit 8d684f3

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
@@ -569,12 +569,12 @@ macro_rules! stack_try_pin_init {
569569
// module `__internal` inside of `init/__internal.rs`.
570570
#[macro_export]
571571
macro_rules! pin_init {
572-
($(&$this:ident in)? $t:ident $(::<$($generics:ty),* $(,)?>)? {
572+
($(&$this:ident in)? $t:ident $(::$p:ident)* $(::<$($generics:ty),* $(,)?>)? {
573573
$($fields:tt)*
574574
}) => {
575575
$crate::__init_internal!(
576576
@this($($this)?),
577-
@typ($t $(::<$($generics),*>)?),
577+
@typ($t $(::$p)* $(::<$($generics),*>)?),
578578
@fields($($fields)*),
579579
@error(::core::convert::Infallible),
580580
@data(PinData, use_data),
@@ -625,12 +625,12 @@ macro_rules! pin_init {
625625
// module `__internal` inside of `init/__internal.rs`.
626626
#[macro_export]
627627
macro_rules! try_pin_init {
628-
($(&$this:ident in)? $t:ident $(::<$($generics:ty),* $(,)?>)? {
628+
($(&$this:ident in)? $t:ident $(::$p:ident)* $(::<$($generics:ty),* $(,)?>)? {
629629
$($fields:tt)*
630630
}) => {
631631
$crate::__init_internal!(
632632
@this($($this)?),
633-
@typ($t $(::<$($generics),*>)? ),
633+
@typ($t $(::$p)* $(::<$($generics),*>)? ),
634634
@fields($($fields)*),
635635
@error($crate::error::Error),
636636
@data(PinData, use_data),
@@ -639,12 +639,12 @@ macro_rules! try_pin_init {
639639
@munch_fields($($fields)*),
640640
)
641641
};
642-
($(&$this:ident in)? $t:ident $(::<$($generics:ty),* $(,)?>)? {
642+
($(&$this:ident in)? $t:ident $(::$p:ident)* $(::<$($generics:ty),* $(,)?>)? {
643643
$($fields:tt)*
644644
}? $err:ty) => {
645645
$crate::__init_internal!(
646646
@this($($this)?),
647-
@typ($t $(::<$($generics),*>)? ),
647+
@typ($t $(::$p)* $(::<$($generics),*>)? ),
648648
@fields($($fields)*),
649649
@error($err),
650650
@data(PinData, use_data),
@@ -674,12 +674,12 @@ macro_rules! try_pin_init {
674674
// module `__internal` inside of `init/__internal.rs`.
675675
#[macro_export]
676676
macro_rules! init {
677-
($(&$this:ident in)? $t:ident $(::<$($generics:ty),* $(,)?>)? {
677+
($(&$this:ident in)? $t:ident $(::$p:ident)* $(::<$($generics:ty),* $(,)?>)? {
678678
$($fields:tt)*
679679
}) => {
680680
$crate::__init_internal!(
681681
@this($($this)?),
682-
@typ($t $(::<$($generics),*>)?),
682+
@typ($t $(::$p)* $(::<$($generics),*>)?),
683683
@fields($($fields)*),
684684
@error(::core::convert::Infallible),
685685
@data(InitData, /*no use_data*/),
@@ -725,12 +725,12 @@ macro_rules! init {
725725
// module `__internal` inside of `init/__internal.rs`.
726726
#[macro_export]
727727
macro_rules! try_init {
728-
($(&$this:ident in)? $t:ident $(::<$($generics:ty),* $(,)?>)? {
728+
($(&$this:ident in)? $t:ident $(::$p:ident)* $(::<$($generics:ty),* $(,)?>)? {
729729
$($fields:tt)*
730730
}) => {
731731
$crate::__init_internal!(
732732
@this($($this)?),
733-
@typ($t $(::<$($generics),*>)?),
733+
@typ($t $(::$p)* $(::<$($generics),*>)?),
734734
@fields($($fields)*),
735735
@error($crate::error::Error),
736736
@data(InitData, /*no use_data*/),
@@ -739,12 +739,12 @@ macro_rules! try_init {
739739
@munch_fields($($fields)*),
740740
)
741741
};
742-
($(&$this:ident in)? $t:ident $(::<$($generics:ty),* $(,)?>)? {
742+
($(&$this:ident in)? $t:ident $(::$p:ident)* $(::<$($generics:ty),* $(,)?>)? {
743743
$($fields:tt)*
744744
}? $err:ty) => {
745745
$crate::__init_internal!(
746746
@this($($this)?),
747-
@typ($t $(::<$($generics),*>)?),
747+
@typ($t $(::$p)* $(::<$($generics),*>)?),
748748
@fields($($fields)*),
749749
@error($err),
750750
@data(InitData, /*no use_data*/),

0 commit comments

Comments
 (0)