diff options
Diffstat (limited to 'src/Compile.hs')
-rw-r--r-- | src/Compile.hs | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/Compile.hs b/src/Compile.hs index b4261ca..7bbb043 100644 --- a/src/Compile.hs +++ b/src/Compile.hs @@ -1082,9 +1082,12 @@ compile' env = \case compileAssign :: String -> SList (Const String) env -> Ex env t -> CompM String compileAssign prefix env e = do e' <- compile' env e - name <- genName' prefix - emit $ SVarDecl True (repSTy (typeOf e)) name e' - return name + case e' of + CELit name -> return name + _ -> do + name <- genName' prefix + emit $ SVarDecl True (repSTy (typeOf e)) name e' + return name data Increment = Increment | Decrement deriving (Show) |