Skip to main content Module uninitialized_local Copy item path Source use super::UninitializedLocal ; π use crate::linter::LateLintPass ; π use crate::linter::LintContext ; π use crate::sol::Severity ; π use crate::sol::SolLint ; π use crate::sol::analysis::branch_always_exits ; π use crate::sol::analysis::for_each_lhs_var ; π use crate::sol::analysis::loop_stmts ; π use solar::ast::ElementaryType; π use solar::interface::Span; π use solar::interface::data_structures::Never; π use solar::sema::Gcx; π use solar::sema::Hir; π use solar::sema::hir::BinOpKind; π use solar::sema::hir::Block; π use solar::sema::hir::Expr; π use solar::sema::hir::ExprKind; π use solar::sema::hir::Function; π use solar::sema::hir::LoopSource; π use solar::sema::hir::Stmt; π use solar::sema::hir::StmtKind; π use solar::sema::hir::TypeKind; π use solar::sema::hir::UnOpKind; π use solar::sema::hir::VarKind; π use solar::sema::hir::VariableId; π use solar::sema::hir::Visit; π use std::collections::HashMap ; π use std::collections::HashSet ; π use std::ops::ControlFlow ; π Checker π UNINITIALIZED_LOCAL defaulted_counter_loop π The loop statement of a conventional for (uint i; i < n; i++) header whose counter relies on
its implicit zero. The header lowers to { decl; loop { if cond { body } else break } } with
the update on the loop source; matching the wrapperβs span keeps declarations outside the
header distinct.