Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
Glasgow Haskell Compiler
GHC
Commits
ed5e2dd0
Commit
ed5e2dd0
authored
May 29, 2000
by
simonpj
Browse files
[project @ 2000-05-29 10:00:38 by simonpj]
Fix missing imports for foreign import/export
parent
2e41c781
Changes
1
Hide whitespace changes
Inline
Side-by-side
ghc/compiler/rename/RnSource.lhs
View file @
ed5e2dd0
...
...
@@ -44,7 +44,8 @@ import OccName ( mkDefaultMethodOcc )
import BasicTypes ( TopLevelFlag(..) )
import FiniteMap ( elemFM )
import PrelInfo ( derivableClassKeys, cCallishClassKeys,
deRefStablePtr_RDR, makeStablePtr_RDR, bindIO_RDR
deRefStablePtr_RDR, makeStablePtr_RDR,
bindIO_RDR, returnIO_RDR
)
import Bag ( bagToList )
import List ( partition, nub )
...
...
@@ -352,15 +353,18 @@ rnDecl (ForD (ForeignDecl name imp_exp ty ext_nm cconv src_loc))
lookupOccRn name `thenRn` \ name' ->
let
extra_fvs FoExport
| isDyn = lookupImplicitOccsRn [makeStablePtr_RDR, deRefStablePtr_RDR
, bindIO_RDR
]
| isDyn = lookupImplicitOccsRn [makeStablePtr_RDR, deRefStablePtr_RDR]
| otherwise = returnRn (unitFV name')
extra_fvs other = returnRn emptyFVs
in
checkRn (ok_ext_nm ext_nm) (badExtName ext_nm) `thenRn_`
extra_fvs imp_exp `thenRn` \ fvs1 ->
rnHsSigType fo_decl_msg ty `thenRn` \ (ty', fvs2) ->
lookupImplicitOccsRn [bindIO_RDR, returnIO_RDR] `thenRn` \ fvs1 ->
extra_fvs imp_exp `thenRn` \ fvs2 ->
rnHsSigType fo_decl_msg ty `thenRn` \ (ty', fvs3) ->
returnRn (ForD (ForeignDecl name' imp_exp ty' ext_nm cconv src_loc),
fvs1 `plusFV` fvs2)
fvs1 `plusFV` fvs2
`plusFV` fvs3
)
where
fo_decl_msg = ptext SLIT("a foreign declaration")
isDyn = isDynamicExtName ext_nm
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment