Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit dcdd5bc

Browse files
authored
fix(parse): explicitly move temporaries in the logger callback
This fixes problems where these stack-local temporaries are used after their scope ends.
1 parent d0e0e03 commit dcdd5bc

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

cli/src/parse.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ pub struct ParseStats {
235235
pub cumulative_stats: Stats,
236236
}
237237

238-
#[derive(Serialize, ValueEnum, Debug, Clone, Default, Eq, PartialEq)]
238+
#[derive(Serialize, ValueEnum, Debug, Copy, Clone, Default, Eq, PartialEq)]
239239
pub enum ParseDebugType {
240240
#[default]
241241
Quiet,
@@ -283,10 +283,11 @@ pub fn parse_file_at_path(
283283
}
284284
// Log to stderr if `--debug` was passed
285285
else if opts.debug != ParseDebugType::Quiet {
286-
let mut curr_version: usize = 0usize;
286+
let mut curr_version: usize = 0;
287287
let use_color = std::env::var("NO_COLOR").map_or(true, |v| v != "1");
288-
parser.set_logger(Some(Box::new(|log_type, message| {
289-
if opts.debug == ParseDebugType::Normal {
288+
let debug = opts.debug;
289+
parser.set_logger(Some(Box::new(move |log_type, message| {
290+
if debug == ParseDebugType::Normal {
290291
if log_type == LogType::Lex {
291292
write!(&mut io::stderr(), " ").unwrap();
292293
}

0 commit comments

Comments
 (0)