From ae34c494f5c333fc4c5f76a09956863122bbcb04 Mon Sep 17 00:00:00 2001 From: Samuel Hammersberg Date: Tue, 21 Mar 2023 10:14:00 +0100 Subject: [PATCH] Improved the visibility checkup a little bit. --- src/Codegen/Codegen.hs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Codegen/Codegen.hs b/src/Codegen/Codegen.hs index e5c6f07..750ae5d 100644 --- a/src/Codegen/Codegen.hs +++ b/src/Codegen/Codegen.hs @@ -15,6 +15,7 @@ import qualified Data.Bifunctor as BI import Data.List.Extra (trim) import Data.Map (Map) import qualified Data.Map as Map +import Data.Maybe (fromMaybe) import Data.Tuple.Extra (dupe, first, second) import qualified Grammar.Abs as GA import Grammar.ErrM (Err) @@ -311,10 +312,10 @@ emitApp t e1 e2 = appEmitter t e1 e2 [] vs <- getNewVar funcs <- gets functions consts <- gets constructors - let visibility = maybe Local (const Global) $ - const Global <$ Map.lookup id consts + let visibility = fromMaybe Local $ + Global <$ Map.lookup id consts <|> - const Global <$ Map.lookup id funcs + Global <$ Map.lookup id funcs -- this piece of code could probably be improved, i.e remove the double `const Global` args' = map (first valueGetType . dupe) args call = Call FastCC (type2LlvmType t) visibility (GA.Ident name) args'