class AdLint::Exam::CBuiltin::W0411

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 8213
def initialize(phase_ctxt)
  super
  trav = phase_ctxt[:cc1_ast_traversal]
  trav.enter_enum_type_declaration += T(:check)
end

Private Instance Methods

check(node) click to toggle source
# File lib/adlint/exam/c_builtin/cc1_check.rb, line 8220
def check(node)
  if enums = node.enum_specifier.enumerators
    exprs = enums.map { |enum| enum.expression }
    return if exprs.all? { |expr| expr.nil? }
    return if exprs.first && exprs.drop(1).all? { |expr| expr.nil? }
    return if exprs.all? { |expr| !expr.nil? }
    W(node.location)
  end
end