@@ -56,7 +56,6 @@ import qualified Language.Haskell.Liquid.Measure as Ms
56
56
import qualified Language.Haskell.Liquid.Bare.Types as Bare
57
57
import qualified Language.Haskell.Liquid.Bare.Resolve as Bare
58
58
import qualified Language.Haskell.Liquid.Bare.DataType as Bare
59
- import Language.Haskell.Liquid.Bare.Elaborate
60
59
import qualified Language.Haskell.Liquid.Bare.Expand as Bare
61
60
import qualified Language.Haskell.Liquid.Bare.Measure as Bare
62
61
import qualified Language.Haskell.Liquid.Bare.Plugged as Bare
@@ -262,7 +261,7 @@ makeGhcSpec0
262
261
-> Ghc. TcRn (Diagnostics , GhcSpec )
263
262
makeGhcSpec0 cfg session tcg instEnvs localVars src lmap targetSpec dependencySpecs = do
264
263
-- build up environments
265
- tycEnv <- makeTycEnv1 name env (tycEnv0, datacons) coreToLg simplifier
264
+ tycEnv <- makeTycEnv1 name env (tycEnv0, datacons)
266
265
let tyi = Bare. tcTyConMap tycEnv
267
266
let sigEnv = makeSigEnv embs tyi (_gsExports src) rtEnv
268
267
let lSpec1 = makeLiftedSpec1 cfg src tycEnv lmap mySpec1
@@ -274,7 +273,7 @@ makeGhcSpec0 cfg session tcg instEnvs localVars src lmap targetSpec dependencySp
274
273
let (dg1, measEnv0) = withDiagnostics $ makeMeasEnv env tycEnv sigEnv specs
275
274
let (dg2, (specInstances, sig)) = withDiagnostics $ makeSpecSig cfg name mySpec iSpecs2 env sigEnv tycEnv measEnv0 (_giCbs src)
276
275
elaboratedSig <-
277
- if allowTC then Bare. makeClassAuxTypes (elaborateSpecType coreToLg simplifier) datacons instMethods
276
+ if allowTC then Bare. makeClassAuxTypes datacons instMethods
278
277
>>= elaborateSig sig
279
278
else pure sig
280
279
let (dg3, refl) = withDiagnostics $ makeSpecRefl cfg src specs env name elaboratedSig tycEnv
@@ -333,23 +332,8 @@ makeGhcSpec0 cfg session tcg instEnvs localVars src lmap targetSpec dependencySp
333
332
})
334
333
where
335
334
-- typeclass elaboration
336
-
337
- coreToLg ce =
338
- case CoreToLogic. runToLogic
339
- embs
340
- lmap
341
- dm
342
- (\ x -> todo Nothing (" coreToLogic not working " ++ x))
343
- (CoreToLogic. coreToLogic allowTC ce) of
344
- Left msg -> panic Nothing (F. showpp msg)
345
- Right e -> e
346
335
elaborateSig si auxsig = do
347
- tySigs <-
348
- forM (gsTySigs si) $ \ (x, t) ->
349
- if GM. isFromGHCReal x then
350
- pure (x, t)
351
- else do t' <- traverse (elaborateSpecType coreToLg simplifier) t
352
- pure (x, t')
336
+ let tySigs = gsTySigs si
353
337
-- things like len breaks the code
354
338
-- asmsigs should be elaborated only if they are from the current module
355
339
-- asmSigs <- forM (gsAsmSigs si) $ \(x, t) -> do
@@ -359,8 +343,6 @@ makeGhcSpec0 cfg session tcg instEnvs localVars src lmap targetSpec dependencySp
359
343
si
360
344
{ gsTySigs = F. notracepp (" asmSigs" ++ F. showpp (gsAsmSigs si)) tySigs ++ auxsig }
361
345
362
- simplifier :: Ghc. CoreExpr -> Ghc. TcRn Ghc. CoreExpr
363
- simplifier = pure -- no simplification
364
346
allowTC = typeclass cfg
365
347
mySpec2 = Bare. qualifyExpand env name rtEnv l [] mySpec1 where l = F. dummyPos " expand-mySpec2"
366
348
iSpecs2 = Bare. qualifyExpand
@@ -378,7 +360,6 @@ makeGhcSpec0 cfg session tcg instEnvs localVars src lmap targetSpec dependencySp
378
360
mySpec1 = mySpec0 <> lSpec0
379
361
lSpec0 = makeLiftedSpec0 cfg src embs lmap mySpec0
380
362
embs = makeEmbeds src env (mySpec0 : map snd dependencySpecs)
381
- dm = Bare. tcDataConMap tycEnv0
382
363
(dg0, datacons, tycEnv0) = makeTycEnv0 cfg name env embs mySpec2 iSpecs2
383
364
env = Bare. makeEnv cfg session tcg instEnvs localVars src lmap ((name, targetSpec) : dependencySpecs)
384
365
-- check barespecs
@@ -1228,12 +1209,10 @@ makeTycEnv1 ::
1228
1209
ModName
1229
1210
-> Bare. Env
1230
1211
-> (Bare. TycEnv , [Located DataConP ])
1231
- -> (Ghc. CoreExpr -> F. Expr )
1232
- -> (Ghc. CoreExpr -> Ghc. TcRn Ghc. CoreExpr )
1233
1212
-> Ghc. TcRn Bare. TycEnv
1234
- makeTycEnv1 myName env (tycEnv, datacons) coreToLg simplifier = do
1213
+ makeTycEnv1 myName env (tycEnv, datacons) = do
1235
1214
-- fst for selector generation, snd for dataconsig generation
1236
- lclassdcs <- forM classdcs $ traverse ( Bare. elaborateClassDcp coreToLg simplifier)
1215
+ lclassdcs <- forM classdcs $ traverse Bare. elaborateClassDcp
1237
1216
let recSelectors = Bare. makeRecordSelectorSigs env myName (dcs ++ (fmap . fmap ) snd lclassdcs)
1238
1217
pure $
1239
1218
tycEnv {Bare. tcSelVars = recSelectors, Bare. tcDataCons = F. val <$> ((fmap . fmap ) fst lclassdcs ++ dcs )}
0 commit comments