Commit 8198413e authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Warn for regular parameters following optional ones.

parent d640a643
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -14,6 +14,7 @@ module JsDuck
    def run
      warn_globals
      warn_unnamed
      warn_optional_params
    end

    # print warning for each global member
@@ -45,6 +46,23 @@ module JsDuck
      end
    end

    # print warning for each non-optional parameter that follows an optional parameter
    def warn_optional_params
      @relations.each do |cls|
        cls[:members][:method].each do |method|
          optional_found = false
          method[:params].each do |p|
            if optional_found && !p[:optional]
              file = method[:filename]
              line = method[:linenr]
              Logger.instance.warn("Optional param can't be followed by regular param #{p[:name]} in #{file} line #{line}")
            end
            optional_found = optional_found || p[:optional]
          end
        end
      end
    end

  end

end