diff options
Diffstat (limited to 'VM.hs')
-rw-r--r-- | VM.hs | 5 |
1 files changed, 3 insertions, 2 deletions
@@ -3,7 +3,6 @@ module VM(vmRun) where import Control.Monad import Data.Char import Data.List -import Data.Maybe import qualified Data.Map.Strict as Map import Data.Map.Strict ((!)) import System.IO @@ -88,7 +87,9 @@ vmRunTerm info@(Info bbmap _ _) state@(State { sTempMap = tmap }) term = case te findRef :: TempMap -> Ref -> RunValue findRef _ (RConst n) = RVNum n -findRef tmap (RTemp i) = fromJust (Map.lookup i tmap) +findRef tmap (RTemp i) = case Map.lookup i tmap of + Nothing -> error "Use of declared but uninitialised variable" + Just v -> v findRef _ (RSClo name) = RVClosure name [] findRef _ RNone = error "VM: None ref used" |