diff options
Diffstat (limited to 'check.hs')
-rw-r--r-- | check.hs | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -214,6 +214,8 @@ complogBO = compareBO ++ logicBO resultTypeBO :: BinaryOperator -> Type -> Type -> Maybe Type resultTypeBO Minus (TypePtr t1) (TypePtr t2) | t1 == t2 = Just $ TypeUInt 1 resultTypeBO bo (TypePtr t1) (TypePtr t2) | t1 == t2 && bo `elem` complogBO = Just $ TypeUInt 1 +resultTypeBO bo t@(TypePtr _) (TypeInt _) | bo `elem` [Plus, Minus] = Just t +resultTypeBO bo (TypeInt _) t@(TypePtr _) | bo `elem` [Plus, Minus] = Just t resultTypeBO _ (TypePtr _) _ = Nothing resultTypeBO _ _ (TypePtr _) = Nothing @@ -243,7 +245,7 @@ resultTypeUO uo t@(TypeInt _) | uo `elem` [Negate, Invert] = Just t resultTypeUO uo t@(TypeUInt _) | uo `elem` [Negate, Invert] = Just t resultTypeUO Negate TypeFloat = Just TypeFloat resultTypeUO Negate TypeDouble = Just TypeDouble -resultTypeUO Dereference t@(TypePtr _) = Just t +resultTypeUO Dereference (TypePtr t) = Just t resultTypeUO _ _ = Nothing smallestFloatType :: Double -> Type |