# File lib/fakefs/pathname.rb, line 256
      def cleanpath_conservative
        path = @path
        names = []
        pre = path
        while (r = chop_basename(pre))
          pre, base = r
          names.unshift base if base != '.'
        end
        if /#{SEPARATOR_PAT}/o =~ File.basename(pre)
          names.shift while names[0] == '..'
        end
        if names.empty?
          self.class.new(File.dirname(pre))
        else
          names << '.' if names.last != '..' && File.basename(path) == '.'

          result = prepend_prefix(pre, File.join(*names))
          if /\A(?:\.|\.\.)\z/ !~ names.last && trailing_separator?(path)
            self.class.new(add_trailing_separator(result))
          else
            self.class.new(result)
          end
        end
      end