Skip to content

Commit 6ddc602

Browse files
committed
clippy reduce arg count
1 parent 2793493 commit 6ddc602

File tree

1 file changed

+45
-27
lines changed

1 file changed

+45
-27
lines changed

crates/compilation/src/lib.rs

Lines changed: 45 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ struct IncludedCodeTable<'src, 'ast> {
4242
data: &'ast [u8],
4343
}
4444

45+
struct ProgramDataDeps<'src, 'ast> {
46+
included_macros: Vec<IncludedMacro<'src>>,
47+
included_code_tables: Vec<IncludedCodeTable<'src, 'ast>>,
48+
}
49+
4550
impl<'src, 'ast> IncludedCodeTable<'src, 'ast> {
4651
fn size_ref(&self) -> MarkRef {
4752
MarkRef {
@@ -75,7 +80,7 @@ pub fn generate_for_entrypoint<'src, 'ast: 'src>(
7580
start_id,
7681
end_id,
7782
});
78-
let mut included_code_tables: Vec<IncludedCodeTable<'src, 'ast>> = globals
83+
let included_code_tables: Vec<IncludedCodeTable<'src, 'ast>> = globals
7984
.defs
8085
.iter()
8186
.filter_map(|(_, def)| {
@@ -92,6 +97,11 @@ pub fn generate_for_entrypoint<'src, 'ast: 'src>(
9297
})
9398
.collect();
9499

100+
let mut program_data_deps = ProgramDataDeps {
101+
included_macros,
102+
included_code_tables,
103+
};
104+
95105
let mut asm = Vec::with_capacity(10_000);
96106
asm.push(Asm::Mark(start_id));
97107
generate_for_macro(
@@ -100,24 +110,28 @@ pub fn generate_for_entrypoint<'src, 'ast: 'src>(
100110
Box::new([]),
101111
&mut mark_tracker,
102112
&mut label_stack,
103-
&mut included_macros,
104-
&mut included_code_tables,
113+
&mut program_data_deps,
105114
&mut asm,
106115
);
107116

108-
included_macros.into_iter().skip(1).for_each(|included| {
109-
let section_macro =
110-
if let Some(Definition::Macro(section_macro)) = globals.defs.get(included.name) {
111-
section_macro
112-
} else {
113-
panic!("Section macro {} not found", included.name);
114-
};
115-
asm.push(Asm::Mark(included.start_id));
116-
asm.push(Asm::Data(generate_for_entrypoint(globals, section_macro)));
117-
asm.push(Asm::Mark(included.end_id));
118-
});
117+
program_data_deps
118+
.included_macros
119+
.into_iter()
120+
.skip(1)
121+
.for_each(|included| {
122+
let section_macro =
123+
if let Some(Definition::Macro(section_macro)) = globals.defs.get(included.name) {
124+
section_macro
125+
} else {
126+
panic!("Section macro {} not found", included.name);
127+
};
128+
asm.push(Asm::Mark(included.start_id));
129+
asm.push(Asm::Data(generate_for_entrypoint(globals, section_macro)));
130+
asm.push(Asm::Mark(included.end_id));
131+
});
119132

120-
included_code_tables
133+
program_data_deps
134+
.included_code_tables
121135
.into_iter()
122136
.filter(|t| t.referenced)
123137
.for_each(|included| {
@@ -191,8 +205,7 @@ fn generate_for_macro<'src: 'cmp, 'cmp, 'ast>(
191205
arg_values: Box<[Asm]>,
192206
mark_tracker: &mut MarkTracker,
193207
label_stack: &'cmp mut LabelStack<'src, usize>,
194-
included_macros: &'cmp mut Vec<IncludedMacro<'src>>,
195-
included_code_tables: &'cmp mut Vec<IncludedCodeTable<'src, 'ast>>,
208+
program_data_deps: &'cmp mut ProgramDataDeps<'src, 'ast>,
196209
asm: &mut Vec<Asm>,
197210
) {
198211
let current_args: BTreeMap<&str, Asm> = BTreeMap::from_iter(
@@ -236,14 +249,15 @@ fn generate_for_macro<'src: 'cmp, 'cmp, 'ast>(
236249
.collect(),
237250
mark_tracker,
238251
label_stack,
239-
included_macros,
240-
included_code_tables,
252+
program_data_deps,
241253
asm,
242254
)
243255
}
244256
Invoke::BuiltinCodeSize(code_ref) => {
245-
let mref: MarkRef = if let Some(included) =
246-
included_macros.iter().find(|m| m.name == code_ref.ident())
257+
let mref: MarkRef = if let Some(included) = program_data_deps
258+
.included_macros
259+
.iter()
260+
.find(|m| m.name == code_ref.ident())
247261
{
248262
included.size_ref()
249263
} else {
@@ -255,14 +269,16 @@ fn generate_for_macro<'src: 'cmp, 'cmp, 'ast>(
255269
end_id,
256270
};
257271
let mref = included.size_ref();
258-
included_macros.push(included);
272+
program_data_deps.included_macros.push(included);
259273
mref
260274
};
261275
asm.push(Asm::Ref(mref));
262276
}
263277
Invoke::BuiltinCodeOffset(code_ref) => {
264-
let mref: MarkRef = if let Some(included) =
265-
included_macros.iter().find(|m| m.name == code_ref.ident())
278+
let mref: MarkRef = if let Some(included) = program_data_deps
279+
.included_macros
280+
.iter()
281+
.find(|m| m.name == code_ref.ident())
266282
{
267283
included.start_ref()
268284
} else {
@@ -274,21 +290,23 @@ fn generate_for_macro<'src: 'cmp, 'cmp, 'ast>(
274290
end_id,
275291
};
276292
let mref = included.start_ref();
277-
included_macros.push(included);
293+
program_data_deps.included_macros.push(included);
278294
mref
279295
};
280296
asm.push(Asm::Ref(mref));
281297
}
282298
Invoke::BuiltinTableStart(table_ref) => {
283-
let target_table = included_code_tables
299+
let target_table = program_data_deps
300+
.included_code_tables
284301
.iter_mut()
285302
.find(|t| t.name == table_ref.ident())
286303
.expect("Table not found (might be jumptable)");
287304
target_table.referenced = true;
288305
asm.push(Asm::Ref(target_table.start_ref()));
289306
}
290307
Invoke::BuiltinTableSize(table_ref) => {
291-
let target_table = included_code_tables
308+
let target_table = program_data_deps
309+
.included_code_tables
292310
.iter_mut()
293311
.find(|t| t.name == table_ref.ident())
294312
.expect("Table not found (might be jumptable)");

0 commit comments

Comments
 (0)