@@ -184,17 +184,26 @@ mkHiFileResultCompile
184
184
mkHiFileResultCompile session' tcm simplified_guts ltype = catchErrs $ do
185
185
let session = session' { hsc_dflags = ms_hspp_opts ms }
186
186
ms = pm_mod_summary $ tmrParsed tcm
187
+ tcGblEnv = tmrTypechecked tcm
187
188
-- give variables unique OccNames
188
- (guts, details) <- tidyProgram session simplified_guts
189
-
190
189
let genLinkable = case ltype of
191
190
ObjectLinkable -> generateObjectCode
192
191
BCOLinkable -> generateByteCode
193
192
194
- (diags, linkable) <- genLinkable session ms guts
195
193
#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)
198
207
#else
199
208
(final_iface,_) <- mkIface session Nothing details simplified_guts
200
209
#endif
0 commit comments