From ad4528eaf7e65575e3fc91959e86f08d3bb5338d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sun, 11 Jan 2026 16:38:53 +0100 Subject: Do not show internal variables in call stack list --- src/Script/Expr.hs | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/Script/Expr.hs b/src/Script/Expr.hs index 1a0f458..bc4f9cb 100644 --- a/src/Script/Expr.hs +++ b/src/Script/Expr.hs @@ -133,6 +133,13 @@ withVar name value = withDictionary (( name, someConstValue value ) : ) withTypedVar :: (MonadEval m, ExprType e) => TypedVarName e -> e -> m a -> m a withTypedVar (TypedVarName name) = withVar name +isInternalVar :: FqVarName -> Bool +isInternalVar (GlobalVarName {}) = False +isInternalVar (LocalVarName (VarName name)) + | Just ( '$', _ ) <- T.uncons name = True + | otherwise = False + + newtype SimpleEval a = SimpleEval (ReaderT ( GlobalDefs, VariableDictionary ) (Except String) a) deriving (Functor, Applicative, Monad, MonadError String) @@ -401,12 +408,15 @@ gatherVars = fmap (uniqOn fst . sortOn fst) . helper Let _ (TypedVarName var) _ expr -> withDictionary (filter ((var /=) . fst)) $ helper expr Variable _ var | GlobalVarName {} <- var -> return [] + | isInternalVar var -> return [] | otherwise -> maybe [] (\x -> [ (( var, [] ), x ) ]) <$> tryLookupVar var DynVariable _ _ var | GlobalVarName {} <- var -> return [] + | isInternalVar var -> return [] | otherwise -> maybe [] (\x -> [ (( var, [] ), x ) ]) <$> tryLookupVar var FunVariable _ _ var | GlobalVarName {} <- var -> return [] + | isInternalVar var -> return [] | otherwise -> maybe [] (\x -> [ (( var, [] ), x ) ]) <$> tryLookupVar var ArgsReq args expr -> withDictionary (filter ((`notElem` map fst (toList args)) . fst)) $ helper expr ArgsApp (FunctionArguments args) fun -> do -- cgit v1.2.3