Skip to content

Commit 0a9b6f7

Browse files
committed
use edition 2021, suppress warnings globally
1 parent 532850d commit 0a9b6f7

File tree

1 file changed

+11
-14
lines changed

1 file changed

+11
-14
lines changed

src/Language/Rust/Inline/Internal.hs

Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ import Control.Monad ( when, forM, forM_ )
3434
import Data.Typeable ( Typeable )
3535
import Data.Monoid ( Endo(..) )
3636
import Data.Maybe ( fromMaybe )
37-
import Data.List ( unfoldr, intercalate )
37+
import Data.List ( nub, unfoldr )
3838
import Data.Char ( isAlpha, isAlphaNum, isUpperCase )
3939

4040
import System.FilePath ( (</>), (<.>), takeBaseName, takeDirectory, takeExtension )
@@ -72,8 +72,8 @@ initCodeBlocks dependenciesOpt = do
7272

7373
-- add hooks for writing out files (and possibly compiling the project)
7474
let finalizer = case dependenciesOpt of
75-
Nothing -> fileFinalizer True
76-
Just deps -> fileFinalizer False *> cargoFinalizer [] deps
75+
Nothing -> fileFinalizer
76+
Just deps -> fileFinalizer *> cargoFinalizer [] deps
7777
addModFinalizer finalizer
7878

7979
-- add a module state
@@ -159,23 +159,19 @@ cargoFinalizer extraArgs dependencies = do
159159
nameFiles <- filter ((".ffinames" ==) . takeExtension) <$> runIO (listFilesRecursive srcDir)
160160

161161
let modDir dir = do
162-
let parentMod =
163-
case takeBaseName dir of
164-
"src" -> ""
165-
foo -> foo
166162
subdirs <- listDirectories dir
167163
mapM_ modDir subdirs
168164
srcs <- filter (\file -> takeExtension file == ".rs" && isUpperCase (head $ takeBaseName file)) <$> listFiles dir
169-
let modules = takeBaseName <$> (subdirs <> srcs)
170-
writeFile (dir </> "mod.rs") . unlines . concat $ [ ["", "pub mod " <> name <> ";", "pub use " <> fullName <> "::*;"]
165+
let modules = nub $ takeBaseName <$> (subdirs <> srcs)
166+
writeFile (dir </> "mod.rs") . unlines . concat $ [ ["", "pub mod " <> name <> ";", "pub use self::" <> name <> "::*;"]
171167
| name <- modules
172-
, let fullName = intercalate "::" [parentMod, name]
173168
]
174169

175170
runIO $ do
176171
modDir srcDir
177-
readFile (srcDir </> "mod.rs") >>= appendFile (srcDir </> "lib.rs")
172+
modules <- readFile (srcDir </> "mod.rs")
178173
removeFile $ srcDir </> "mod.rs"
174+
writeFile (srcDir </> "lib.rs") $ "#![allow(warnings)]\n\n" <> modules
179175

180176
names <- runIO $ concat <$> forM nameFiles (fmap lines . readFile)
181177
ffiFakeSig <- [t| IO () |]
@@ -189,6 +185,7 @@ cargoFinalizer extraArgs dependencies = do
189185
cargoSrc = unlines [ "[package]"
190186
, "name = \"" ++ crate ++ "\""
191187
, "version = \"0.0.0\""
188+
, "edition = \"2021\""
192189

193190
, "[dependencies]"
194191
, unlines [ name ++ " = \"" ++ version ++ "\""
@@ -260,13 +257,13 @@ rustcErrMsg = "Rust source file associated with this module failed to compile"
260257
-- a module. This emits into a file in the @.inline-rust@ directory all of the
261258
-- Rust code we have produced while processing the current files contexts and
262259
-- quasiquotes.
263-
fileFinalizer :: Bool -> Q ()
264-
fileFinalizer submodule = do
260+
fileFinalizer :: Q ()
261+
fileFinalizer = do
265262
(pkg, mods) <- currentFile
266263

267264
let pkgDir = ".inline-rust" </> pkg
268265
srcDir = pkgDir </> "src"
269-
thisFile = if submodule then foldr1 (</>) mods else "lib"
266+
thisFile = foldr1 (</>) mods
270267

271268
-- Figure out what we are putting into this file
272269
Just cb <- getQ

0 commit comments

Comments
 (0)