diff options
Diffstat (limited to 'ghc/compiler/stgSyn/StgLint.lhs')
-rw-r--r-- | ghc/compiler/stgSyn/StgLint.lhs | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/ghc/compiler/stgSyn/StgLint.lhs b/ghc/compiler/stgSyn/StgLint.lhs index 0eda05d6e4..72a1ffb56c 100644 --- a/ghc/compiler/stgSyn/StgLint.lhs +++ b/ghc/compiler/stgSyn/StgLint.lhs @@ -166,7 +166,13 @@ lintStgExpr e@(StgConApp con args) where con_ty = dataConRepType con -lintStgExpr e@(StgPrimApp op args _) +lintStgExpr e@(StgOpApp (StgFCallOp _ _) args res_ty) + = -- We don't have enough type information to check + -- the application; ToDo + mapMaybeL lintStgArg args `thenL` \ maybe_arg_tys -> + returnL (Just res_ty) + +lintStgExpr e@(StgOpApp (StgPrimOp op) args _) = mapMaybeL lintStgArg args `thenL` \ maybe_arg_tys -> case maybe_arg_tys of Nothing -> returnL Nothing |