    # File lib/yard/code_objects/base.rb, line 164
            def new(namespace, name, *args, &block)
              raise ArgumentError, "invalid empty object name" if name.to_s.empty?
              if namespace.is_a?(ConstantObject)
                namespace = Proxy.new(namespace.namespace, namespace.value)
              end

              if name.to_s[0,2] == NSEP
                name = name.to_s[2..-1]
                namespace = Registry.root
              elsif name =~ /(?:#{NSEPQ})([^:]+)$/
                return new(Proxy.new(namespace, $`), $1, *args, &block)
              end

              obj = super(namespace, name, *args)
              existing_obj = Registry.at(obj.path)
              obj = existing_obj if existing_obj && existing_obj.class == self
              yield(obj) if block_given?
              obj
            end