Skip to content

Commit b30bbc3

Browse files
committed
1 parent 50632e7 commit b30bbc3

File tree

1 file changed

+14
-5
lines changed

1 file changed

+14
-5
lines changed

ghcide/src/Development/IDE/Core/Compile.hs

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -184,17 +184,26 @@ mkHiFileResultCompile
184184
mkHiFileResultCompile session' tcm simplified_guts ltype = catchErrs $ do
185185
let session = session' { hsc_dflags = ms_hspp_opts ms }
186186
ms = pm_mod_summary $ tmrParsed tcm
187+
tcGblEnv = tmrTypechecked tcm
187188
-- give variables unique OccNames
188-
(guts, details) <- tidyProgram session simplified_guts
189-
190189
let genLinkable = case ltype of
191190
ObjectLinkable -> generateObjectCode
192191
BCOLinkable -> generateByteCode
193192

194-
(diags, linkable) <- genLinkable session ms guts
195193
#if MIN_GHC_API_VERSION(8,10,0)
196-
let !partial_iface = force (mkPartialIface session details simplified_guts)
197-
final_iface <- mkFullIface session partial_iface
194+
(final_iface, linkable, details, diags) <-
195+
if mg_hsc_src simplified_guts == HsBootFile
196+
then do
197+
sf <- finalSafeMode (ms_hspp_opts ms) tcGblEnv
198+
details <- mkBootModDetailsTc session tcGblEnv
199+
r <- mkIfaceTc session sf details tcGblEnv
200+
pure (r, Nothing, details, [])
201+
else do
202+
(guts, details) <- tidyProgram session simplified_guts
203+
(diags, linkable) <- genLinkable session ms guts
204+
let !partial_iface = force (mkPartialIface session details simplified_guts)
205+
r <- mkFullIface session partial_iface
206+
pure (r, linkable, details, diags)
198207
#else
199208
(final_iface,_) <- mkIface session Nothing details simplified_guts
200209
#endif

0 commit comments

Comments
 (0)