From 70d347eeec51748405ce1942fda5db3e197b2a2c Mon Sep 17 00:00:00 2001 From: Taylor Fausak Date: Wed, 20 Mar 2024 11:35:28 -0500 Subject: [PATCH 1/2] Mark imports as implicit --- source/ghc-9.4/Imp/Ghc.hs | 2 +- source/ghc-9.6/Imp/Ghc.hs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/source/ghc-9.4/Imp/Ghc.hs b/source/ghc-9.4/Imp/Ghc.hs index 726c818..6c747d5 100644 --- a/source/ghc-9.4/Imp/Ghc.hs +++ b/source/ghc-9.4/Imp/Ghc.hs @@ -13,7 +13,7 @@ newImportDecl moduleName = Hs.ImportDecl { Hs.ideclExt = Hs.noAnn, Hs.ideclSourceSrc = SourceText.NoSourceText, - Hs.ideclImplicit = False, + Hs.ideclImplicit = True, Hs.ideclName = Hs.noLocA moduleName, Hs.ideclPkgQual = Plugin.NoRawPkgQual, Hs.ideclSource = Plugin.NotBoot, diff --git a/source/ghc-9.6/Imp/Ghc.hs b/source/ghc-9.6/Imp/Ghc.hs index 5906e0e..f1bd6b7 100644 --- a/source/ghc-9.6/Imp/Ghc.hs +++ b/source/ghc-9.6/Imp/Ghc.hs @@ -15,7 +15,7 @@ newImportDecl moduleName = Hs.XImportDeclPass { Hs.ideclAnn = Hs.noAnn, Hs.ideclSourceText = SourceText.NoSourceText, - Hs.ideclImplicit = False + Hs.ideclImplicit = True }, Hs.ideclName = Hs.noLocA moduleName, Hs.ideclPkgQual = Plugin.NoRawPkgQual, From c7568f52755c7fd626585422f639dc037c76663f Mon Sep 17 00:00:00 2001 From: Taylor Fausak Date: Wed, 20 Mar 2024 11:39:40 -0500 Subject: [PATCH 2/2] Fix tests --- source/test-suite/Main.hs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/source/test-suite/Main.hs b/source/test-suite/Main.hs index c4cd2d4..8775410 100644 --- a/source/test-suite/Main.hs +++ b/source/test-suite/Main.hs @@ -32,31 +32,31 @@ main = Hspec.hspec . Hspec.parallel . Hspec.describe "Imp" $ do expectImp [] "true = Data.Bool.True" - "import qualified Data.Bool\ntrue = Data.Bool.True" + "import (implicit) qualified Data.Bool\ntrue = Data.Bool.True" Hspec.it "inserts an aliased import" $ do expectImp ["--alias=Data.Bool:Bool"] "true = Bool.True" - "import qualified Data.Bool as Bool\ntrue = Bool.True" + "import (implicit) qualified Data.Bool as Bool\ntrue = Bool.True" Hspec.it "prefers later aliases over earlier ones" $ do expectImp ["--alias=Relude.Bool:Bool", "--alias=Data.Bool:Bool"] "true = Bool.True" - "import qualified Data.Bool as Bool\ntrue = Bool.True" + "import (implicit) qualified Data.Bool as Bool\ntrue = Bool.True" Hspec.it "inserts an import for a qualified type" $ do expectImp [] "true = True :: Data.Bool.Bool" - "import qualified Data.Bool\ntrue = True :: Data.Bool.Bool" + "import (implicit) qualified Data.Bool\ntrue = True :: Data.Bool.Bool" Hspec.it "inserts multiple imports sorted" $ do expectImp [] "true :: Relude.Bool.Bool\ntrue = Data.Bool.True" - "import qualified Data.Bool\nimport qualified Relude.Bool\ntrue :: Relude.Bool.Bool\ntrue = Data.Bool.True" + "import (implicit) qualified Data.Bool\nimport (implicit) qualified Relude.Bool\ntrue :: Relude.Bool.Bool\ntrue = Data.Bool.True" Hspec.it "does not re-import an open import" $ do expectImp @@ -80,7 +80,7 @@ main = Hspec.hspec . Hspec.parallel . Hspec.describe "Imp" $ do expectImp [] "import qualified Relude.Bool\ntrue :: Relude.Bool.Bool\ntrue = Data.Bool.True" - "import qualified Relude.Bool\nimport qualified Data.Bool\ntrue :: Relude.Bool.Bool\ntrue = Data.Bool.True" + "import qualified Relude.Bool\nimport (implicit) qualified Data.Bool\ntrue :: Relude.Bool.Bool\ntrue = Data.Bool.True" expectImp :: (Stack.HasCallStack) => [String] -> String -> String -> Hspec.Expectation expectImp arguments input expected = do