# File lib/yard/registry.rb, line 106
    def resolve(namespace, name, inheritance = false, proxy_fallback = false)
      if namespace.is_a?(CodeObjects::Proxy)
        return proxy_fallback ? CodeObjects::Proxy.new(namespace, name) : nil
      end
      
      if namespace == :root || !namespace
        namespace = root
      else
        namespace = namespace.parent until namespace.is_a?(CodeObjects::NamespaceObject)
      end
      orignamespace = namespace

      name = name.to_s
      if name =~ /^#{CodeObjects::NSEPQ}/
        [name, name[2..-1]].each do |n|
          return at(n) if at(n)
        end
      else
        while namespace
          if namespace.is_a?(CodeObjects::NamespaceObject)
            nss = inheritance ? namespace.inheritance_tree(true) : [namespace]
            nss.each do |ns|
              next if ns.is_a?(CodeObjects::Proxy)
              found = partial_resolve(ns, name)
              return found if found
            end
          end
          namespace = namespace.parent
        end

        # Look for ::name or #name in the root space
        [CodeObjects::ISEP, CodeObjects::NSEP].each do |s|
          found = at(s + name)
          return found if found
        end
      end
      proxy_fallback ? CodeObjects::Proxy.new(orignamespace, name) : nil
    end