Delete hack when takeDirectory returns ""
authorThomas Miedema <thomasmiedema@gmail.com>
Tue, 23 Sep 2014 13:44:02 +0000 (08:44 -0500)
committerAustin Seipp <austin@well-typed.com>
Tue, 23 Sep 2014 13:44:03 +0000 (08:44 -0500)
Summary:
Since commits 8fe1f8 and bb6731 in the filepath packages (ticket #2034, closed
in 2010), takeDirectory "foo" returns ".", and not "", so this check is no
longer needed.

Other commits:
* Remove trailing whitespace
* Update comments for #2278

Test Plan: harbormaster

Reviewers: austin

Reviewed By: austin

Subscribers: simonmar, ezyang, carter

Differential Revision: https://phabricator.haskell.org/D213

GHC Trac Issues: #2034

compiler/utils/Util.lhs
ghc/Main.hs

index 97bafe6..999eb90 100644 (file)
@@ -262,7 +262,7 @@ splitEithers (e : es) = case e of
 chkAppend :: [a] -> [a] -> [a]
 -- Checks for the second arguemnt being empty
 -- Used in situations where that situation is common
-chkAppend xs ys 
+chkAppend xs ys
   | null ys   = xs
   | otherwise = xs ++ ys
 \end{code}
@@ -589,7 +589,7 @@ dropTail :: Int -> [a] -> [a]
 dropTail n xs
   = go (drop n xs) xs
   where
-    go (_:ys) (x:xs) = x : go ys xs 
+    go (_:ys) (x:xs) = x : go ys xs
     go _      _      = []  -- Stop when ys runs out
                            -- It'll always run out before xs does
 
@@ -950,9 +950,7 @@ maybeReadFuzzy str = case reads str of
 -- Verify that the 'dirname' portion of a FilePath exists.
 --
 doesDirNameExist :: FilePath -> IO Bool
-doesDirNameExist fpath = case takeDirectory fpath of
-                         "" -> return True -- XXX Hack
-                         _  -> doesDirectoryExist (takeDirectory fpath)
+doesDirNameExist fpath = doesDirectoryExist (takeDirectory fpath)
 
 -----------------------------------------------------------------------------
 -- Backwards compatibility definition of getModificationTime
index e6ff043..c1ee247 100644 (file)
@@ -345,16 +345,16 @@ checkOptions mode dflags srcs objs = do
 
 -- Compiler output options
 
--- called to verify that the output files & directories
--- point somewhere valid.
+-- Called to verify that the output files point somewhere valid.
 --
 -- The assumption is that the directory portion of these output
 -- options will have to exist by the time 'verifyOutputFiles'
 -- is invoked.
 --
+-- We create the directories for -odir, -hidir, -outputdir etc. ourselves if
+-- they don't exist, so don't check for those here (#2278).
 verifyOutputFiles :: DynFlags -> IO ()
 verifyOutputFiles dflags = do
-  -- not -odir: we create the directory for -odir if it doesn't exist (#2278).
   let ofile = outputFile dflags
   when (isJust ofile) $ do
      let fn = fromJust ofile