# File lib/addressable/uri.rb, line 698
    def user=(new_user)
      # Check for frozenness
      raise TypeError, "Can't modify frozen URI." if self.frozen?

      if new_user && !new_user.respond_to?(:to_str)
        raise TypeError, "Can't convert #{new_user.class} into String."
      end
      @user = new_user ? new_user.to_str : nil

      # You can't have a nil user with a non-nil password
      @password ||= nil
      if @password != nil
        @user = "" if @user.nil?
      end

      # Reset dependant values
      @userinfo = nil
      @normalized_userinfo = nil
      @authority = nil
      @normalized_user = nil
      @uri_string = nil

      # Ensure we haven't created an invalid URI
      validate()
    end