@@ -511,10 +511,10 @@ loadCryptolModule sc env path = do
511
511
-- command line.
512
512
513
513
return ( cryptolModule
514
- , updateFFITypes m
515
- env { eModuleEnv = modEnv''
516
- , eTermEnv = newTermEnv
517
- }
514
+ , env { eModuleEnv = modEnv''
515
+ , eTermEnv = newTermEnv
516
+ , eFFITypes = updateFFITypes m newTermEnv (eFFITypes env)
517
+ }
518
518
-- NOTE here the difference between this function and
519
519
-- `importModule`:
520
520
-- 1. the `eImports` field is not updated, as
@@ -557,14 +557,14 @@ mkCryptolModule m types newTermEnv =
557
557
newTermEnv
558
558
)
559
559
560
- updateFFITypes :: T. Module -> CryptolEnv -> CryptolEnv
561
- updateFFITypes m env = env { eFFITypes = eFFITypes' }
560
+ updateFFITypes :: T. Module -> Map MN. Name Term -> Map NameInfo T. FFI -> Map NameInfo T. FFI
561
+ updateFFITypes m eTermEnv' eFFITypes' =
562
+ foldr (\ (nm, ty) -> Map. insert (getNameInfo nm) ty)
563
+ eFFITypes'
564
+ (T. findForeignDecls m)
562
565
where
563
- eFFITypes' = foldr (\ (nm, ty) -> Map. insert (getNameInfo nm) ty)
564
- (eFFITypes env)
565
- (T. findForeignDecls m)
566
566
getNameInfo nm =
567
- case Map. lookup nm ( eTermEnv env) of
567
+ case Map. lookup nm eTermEnv' of
568
568
Just tm ->
569
569
case asConstant tm of
570
570
Just n -> nameInfo n
@@ -685,10 +685,11 @@ importModule sc env src as vis imps = do
685
685
locate x = P. Located P. emptyRange x
686
686
687
687
return $
688
- (updateFFITypes m env{ eModuleEnv = modEnv'
689
- , eTermEnv = newTermEnv
690
- })
691
- {eImports = newImport : eImports env}
688
+ env{ eModuleEnv = modEnv'
689
+ , eTermEnv = newTermEnv
690
+ , eFFITypes = updateFFITypes m newTermEnv (eFFITypes env)
691
+ , eImports = newImport : eImports env
692
+ }
692
693
693
694
bindIdent :: Ident -> CryptolEnv -> (T. Name , CryptolEnv )
694
695
bindIdent ident env = (name, env')
0 commit comments