Skip to content

Commit 163564c

Browse files
committed
Simplify scan for required trivial aliases using a closure
1 parent 63a0e4e commit 163564c

File tree

1 file changed

+5
-23
lines changed

1 file changed

+5
-23
lines changed

syntax/types.rs

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -141,44 +141,26 @@ impl<'a> Types<'a> {
141141
// the APIs above, in case some function or struct references a type
142142
// which is declared subsequently.
143143
let mut required_trivial_aliases = Set::new();
144-
145-
fn insist_alias_types_are_trivial<'c>(
146-
required_trivial_aliases: &mut Set<&'c Ident>,
147-
aliases: &Map<&'c Ident, &'c TypeAlias>,
148-
ty: &'c Type,
149-
) {
144+
let mut insist_alias_types_are_trivial = |ty: &'a Type| {
150145
if let Type::Ident(ident) = ty {
151146
if aliases.contains_key(ident) {
152147
required_trivial_aliases.insert(ident);
153148
}
154149
}
155-
}
156-
150+
};
157151
for api in apis {
158152
match api {
159153
Api::Struct(strct) => {
160154
for field in &strct.fields {
161-
insist_alias_types_are_trivial(
162-
&mut required_trivial_aliases,
163-
&aliases,
164-
&field.ty,
165-
);
155+
insist_alias_types_are_trivial(&field.ty);
166156
}
167157
}
168158
Api::CxxFunction(efn) | Api::RustFunction(efn) => {
169159
for arg in &efn.args {
170-
insist_alias_types_are_trivial(
171-
&mut required_trivial_aliases,
172-
&aliases,
173-
&arg.ty,
174-
);
160+
insist_alias_types_are_trivial(&arg.ty);
175161
}
176162
if let Some(ret) = &efn.ret {
177-
insist_alias_types_are_trivial(
178-
&mut required_trivial_aliases,
179-
&aliases,
180-
&ret,
181-
);
163+
insist_alias_types_are_trivial(&ret);
182164
}
183165
}
184166
_ => {}

0 commit comments

Comments
 (0)