Commit 765841ec authored by Rene Saarsoo's avatar Rene Saarsoo
Browse files

Move @override processing to Tag class.

parent 2295dcf7
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -44,7 +44,6 @@ module JsDuck
        :name => detect_name(:class, doc_map),
        :doc => detect_doc(docs),
        :enum => detect_enum(doc_map),
        :override => extract(doc_map, :override, :class),
      }, doc_map)
    end

+7 −2
Original line number Diff line number Diff line
@@ -5,23 +5,28 @@ module JsDuck::Tag
  class Override < Tag
    def initialize
      @pattern = "override"
      @key = :override
      @ext_define_pattern = "override"
    end

    # @override nameOfOverride
    def parse(p)
      p.add_tag(:override)
      p.maybe_ident_chain(:class)
      p.maybe_ident_chain(:override)

      # When @override not followed by class name, ignore the tag.
      # That's because the current ext codebase has some methods
      # tagged with @override to denote they override something.
      # But that's not what @override is meant for in JSDuck.
      unless p.current_tag[:class]
      unless p.current_tag[:override]
        p.remove_last_tag
      end
    end

    def process_doc(tags)
      tags[0][:override]
    end

    def parse_ext_define(cls, ast)
      cls[:override] = JsDuck::AstUtils.make_string(ast)
    end