class AdLint::Exam::CBuiltin::W0810

Public Class Methods

new(phase_ctxt) click to toggle source
Calls superclass method AdLint::Examination::new
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20086
def initialize(phase_ctxt)
  super
  trav = phase_ctxt[:cc1_ast_traversal]
  trav.enter_if_statement      += T(:enter_outer_if_stmt)
  trav.leave_if_statement      += T(:leave_outer_if_stmt)
  trav.enter_if_else_statement += T(:check_inner_if_else_stmt)
  @if_stmt_stack = []
end

Private Instance Methods

check_inner_if_else_stmt(*) click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20104
def check_inner_if_else_stmt(*)
  if outer_if_stmt = @if_stmt_stack.last and
      !outer_if_stmt.statement.kind_of?(Cc1::CompoundStatement)
    W(outer_if_stmt.location)
  end
end
enter_outer_if_stmt(if_stmt) click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20096
def enter_outer_if_stmt(if_stmt)
  @if_stmt_stack.push(if_stmt)
end
leave_outer_if_stmt(*) click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 20100
def leave_outer_if_stmt(*)
  @if_stmt_stack.pop
end