checker: minor cleanup in find_unreachable_statements_after_noreturn_calls()

pull/13903/head
yuyi98 2022-04-02 16:40:16 +08:00
parent af79c1e6ef
commit 8f966c5d5d
1 changed files with 8 additions and 11 deletions

View File

@ -158,19 +158,16 @@ pub fn (mut c Checker) return_stmt(mut node ast.Return) {
pub fn (mut c Checker) find_unreachable_statements_after_noreturn_calls(stmts []ast.Stmt) {
mut prev_stmt_was_noreturn_call := false
for stmt in stmts {
match stmt {
ast.ExprStmt {
if stmt.expr is ast.CallExpr {
if prev_stmt_was_noreturn_call {
c.error('unreachable code after a [noreturn] call', stmt.pos)
return
}
prev_stmt_was_noreturn_call = stmt.expr.is_noreturn
if stmt is ast.ExprStmt {
if stmt.expr is ast.CallExpr {
if prev_stmt_was_noreturn_call {
c.error('unreachable code after a [noreturn] call', stmt.pos)
return
}
prev_stmt_was_noreturn_call = stmt.expr.is_noreturn
}
else {
prev_stmt_was_noreturn_call = false
}
} else {
prev_stmt_was_noreturn_call = false
}
}
}