class AdLint::Exam::CBuiltin::W0087
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 2008 def initialize(phase_ctxt) super trav = phase_ctxt[:cc1_ast_traversal] trav.enter_simple_assignment_expression += T(:enter_assignment) trav.leave_simple_assignment_expression += T(:leave_assignment) trav.enter_compound_assignment_expression += T(:enter_assignment) trav.leave_compound_assignment_expression += T(:leave_assignment) trav.enter_function_call_expression += T(:enter_assignment) trav.leave_function_call_expression += T(:leave_assignment) trav.enter_comma_separated_expression += T(:check) @assignment_depth = 0 end
Private Instance Methods
check(node)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 2030 def check(node) if !node.expressions.last.have_side_effect? && @assignment_depth == 0 W(node.location) end end
enter_assignment(*)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 2022 def enter_assignment(*) @assignment_depth += 1 end
leave_assignment(*)
click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 2026 def leave_assignment(*) @assignment_depth -= 1 end