# File lib/yard/code_objects/base.rb, line 207
      def initialize(namespace, name, *args, &block)
        if namespace && namespace != :root &&
            !namespace.is_a?(NamespaceObject) && !namespace.is_a?(Proxy)
          raise ArgumentError, "Invalid namespace object: #{namespace}"
        end

        @files = []
        @current_file_has_comments = false
        @name = name.to_sym
        @source_type = :ruby
        @visibility = :public
        @tags = []
        @docstring = Docstring.new('', self)
        @docstring_extra = nil
        @docstring_extra_tags = nil
        @namespace = nil
        self.namespace = namespace
        yield(self) if block_given?
      end