Commit b2723212 authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Move empty enum warning to Lint class.

It was at the wrong level - foo.* enums were reported
as empty.
parent 8c986c7c
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
require 'jsduck/logger'

module JsDuck

  class Enum
@@ -31,9 +29,6 @@ module JsDuck
        types = cls[:members][:property].map {|p| p[:type] }
        types.sort.uniq.join("/")
      else
        file = cls[:files][0][:filename]
        line = cls[:files][0][:linenr]
        Logger.instance.warn(:enum, "Enum #{cls[:name]} defined without values in it", file, line)
        "Object"
      end
    end
+10 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@ module JsDuck
      warn_optional_params
      warn_duplicate_params
      warn_duplicate_members
      warn_empty_enums
    end

    # print warning for each member or parameter with no name
@@ -94,6 +95,15 @@ module JsDuck
      end
    end

    # print warnings for enums with no values
    def warn_empty_enums
      @relations.each do |cls|
        if cls[:enum] && cls[:members][:property].length == 0
          warn(:enum, "Enum #{cls[:name]} defined without values in it", cls)
        end
      end
    end

    # Loops through all members of all classes
    def each_member(&block)
      @relations.each {|cls| cls.all_local_members.each(&block) }