Skip to content

Commit e2b5cbe

Browse files
committed
clean up macro scoping
1 parent 98899c8 commit e2b5cbe

File tree

5 files changed

+33
-16
lines changed

5 files changed

+33
-16
lines changed

naga/src/proc/overloads/constructor_set.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,3 +170,5 @@ macro_rules! constructor_set {
170170
}
171171
}
172172
}
173+
174+
pub(in crate::proc::overloads) use constructor_set;

naga/src/proc/overloads/mathfunction.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
33
use crate::proc::overloads::any_overload_set::AnyOverloadSet;
44
use crate::proc::overloads::list::List;
5+
use crate::proc::overloads::regular::regular;
56
use crate::proc::overloads::utils::{
67
concrete_int_scalars, float_scalars, float_scalars_unimplemented_abstract, list, pairs, rule,
78
scalar_or_vecn, triples, vector_sizes,

naga/src/proc/overloads/mod.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,12 +12,9 @@ representing the given `MathFunction`'s overloads.
1212
1313
*/
1414

15-
#[macro_use]
1615
mod constructor_set;
17-
#[macro_use]
18-
mod scalar_set;
19-
#[macro_use]
2016
mod regular;
17+
mod scalar_set;
2118

2219
mod any_overload_set;
2320
mod list;
@@ -126,6 +123,7 @@ use core::fmt;
126123
///
127124
/// [`List`]: list::List
128125
/// [`Regular`]: regular::Regular
126+
/// [`regular!`]: regular::regular
129127
pub trait OverloadSet: Clone {
130128
/// Return true if `self` is the empty set of overloads.
131129
fn is_empty(&self) -> bool;

naga/src/proc/overloads/regular.rs

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -288,27 +288,41 @@ impl ForDebugWithTypes for &[Rule] {}
288288
/// When a return type identifier is given, it is treated as a variant
289289
/// of the the [`ConclusionRule`] enum.
290290
macro_rules! regular {
291-
//
291+
// regular!(ARITY, CONSTRUCTOR of SCALAR)
292292
( $arity:literal , $( $constr:ident )|* of $( $scalar:ident )|*) => {
293-
$crate::proc::overloads::regular::Regular {
294-
arity: $arity,
295-
constructors: constructor_set!( $( $constr )|* ),
296-
scalars: scalar_set!( $( $scalar )|* ),
297-
conclude: $crate::proc::overloads::regular::ConclusionRule::ArgumentType,
293+
{
294+
use $crate::proc::overloads;
295+
use overloads::constructor_set::constructor_set;
296+
use overloads::regular::{Regular, ConclusionRule};
297+
use overloads::scalar_set::scalar_set;
298+
Regular {
299+
arity: $arity,
300+
constructors: constructor_set!( $( $constr )|* ),
301+
scalars: scalar_set!( $( $scalar )|* ),
302+
conclude: ConclusionRule::ArgumentType,
303+
}
298304
}
299305
};
300306

301-
// regular!(ARITY, CONSTRUCTOR<SCALAR>)
307+
// regular!(ARITY, CONSTRUCTOR of SCALAR -> CONCLUSION_RULE)
302308
( $arity:literal , $( $constr:ident )|* of $( $scalar:ident )|* -> $conclude:ident) => {
303-
$crate::proc::overloads::regular::Regular {
304-
arity: $arity,
305-
constructors: constructor_set!( $( $constr )|* ),
306-
scalars: scalar_set!( $( $scalar )|* ),
307-
conclude: $crate::proc::overloads::regular::ConclusionRule::$conclude,
309+
{
310+
use $crate::proc::overloads;
311+
use overloads::constructor_set::constructor_set;
312+
use overloads::regular::{Regular, ConclusionRule};
313+
use overloads::scalar_set::scalar_set;
314+
Regular {
315+
arity: $arity,
316+
constructors:constructor_set!( $( $constr )|* ),
317+
scalars: scalar_set!( $( $scalar )|* ),
318+
conclude: ConclusionRule::$conclude,
319+
}
308320
}
309321
};
310322
}
311323

324+
pub(in crate::proc::overloads) use regular;
325+
312326
#[cfg(test)]
313327
mod test {
314328
use super::*;

naga/src/proc/overloads/scalar_set.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -137,3 +137,5 @@ macro_rules! scalar_set {
137137
}
138138
}
139139
}
140+
141+
pub(in crate::proc::overloads) use scalar_set;

0 commit comments

Comments
 (0)