use ruff_python_ast::Stmt;
use crate::{checkers::ast::Checker, codes::Rule, rules::refurb};
pub(crate) fn deferred_with_statements(checker: &mut Checker) {
let with_statements = std::mem::take(&mut checker.analyze.with_statements);
for snapshot in with_statements {
checker.semantic.restore(snapshot);
let checker = &*checker;
let Stmt::With(stmt_with) = checker.semantic.current_statement() else {
unreachable!("Expected Stmt::With");
};
if checker.is_rule_enabled(Rule::ReadWholeFile) {
refurb::rules::read_whole_file(checker, stmt_with);
}
if checker.is_rule_enabled(Rule::WriteWholeFile) {
refurb::rules::write_whole_file(checker, stmt_with);
}
}
}