From 5f01d644068c2a8252a4bd5c690459eb8f891829 Mon Sep 17 00:00:00 2001 From: Veit Heller Date: Tue, 12 Oct 2021 21:23:11 +0200 Subject: [PATCH] fix: categorize static calls correctly (#1322) --- src/Eval.hs | 5 ++++- src/Obj.hs | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Eval.hs b/src/Eval.hs index 123ff519..ac6988fd 100644 --- a/src/Eval.hs +++ b/src/Eval.hs @@ -224,9 +224,12 @@ eval ctx xobj@(XObj o info ty) preference resolver = Left err -> pure (evalError ctx (show err) (xobjInfo xobj)) Right x' -> case checkStatic' x' of Right _ -> evaluateApp (self : args) - Left er -> pure (evalError ctx (show er) (xobjInfo xobj)) + Left er -> pure (ctx, Left er) (AppPat (ListPat _) _) -> evaluateApp form' (AppPat (SymPat _ _) _) -> evaluateApp form' + (AppPat (XObj other _ _) _) + | isResolvableStaticObj other -> + pure (ctx, (Left (HasStaticCall xobj info))) [] -> pure (ctx, dynamicNil) _ -> pure (throwErr (UnknownForm xobj) ctx (xobjInfo xobj)) checkStatic' (XObj Def _ _) = Left (HasStaticCall xobj info) diff --git a/src/Obj.hs b/src/Obj.hs index beb3d565..02f5d908 100644 --- a/src/Obj.hs +++ b/src/Obj.hs @@ -1097,6 +1097,7 @@ isResolvableStaticObj (Deftemplate _) = True isResolvableStaticObj (Instantiate _) = True isResolvableStaticObj (Fn _ _) = True isResolvableStaticObj (Interface _ _) = True +isResolvableStaticObj Ref = True isResolvableStaticObj _ = False -- | Left biased semigroup instance for Envs.