Changeset 20058 for src/Pugs/Eval.hs
- Timestamp:
- 03/04/08 22:06:31 (9 months ago)
- Files:
-
- 1 modified
-
src/Pugs/Eval.hs (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/Pugs/Eval.hs
r17873 r20058 185 185 evalRef ref = do 186 186 if refType ref == (mkType "Thunk") then forceRef ref else do 187 val <- catchT $ \ esc-> do187 val <- catchT $ \(esc :: Val -> Eval ()) -> do 188 188 MkEnv{ envContext = cxt, envLValue = lv } <- ask 189 189 let typ = typeOfCxt cxt … … 281 281 Nothing 282 282 | SType <- sig -> return . VType . cast $ if isQualifiedVar var 283 then cast $ Buf. join(__"::") [cast pkg, cast name]283 then cast $ Buf.intercalate (__"::") [cast pkg, cast name] 284 284 else name 285 285 | isGlobalVar var || pkg `notElem` [emptyPkg, callerPkg, outerPkg, contextPkg] -> do … … 1484 1484 --- not scalarRef! -- use the new "transparent IType" thing! 1485 1485 case showType (typeOfSigilVar var) of 1486 "Hash" -> ($ v) . fix $ \ redox -> case x of1486 "Hash" -> ($ v) . fix $ \(redo :: Val -> Eval Val) x -> case x of 1487 1487 VRef (MkRef (IHash h)) -> return (VRef $ hashRef h) 1488 1488 VRef ref@(MkRef IScalar{}) -> redo =<< readRef ref 1489 1489 _ -> fmap (VRef . hashRef) (fromVal v :: Eval VHash) 1490 "Array" -> ($ v) . fix $ \ redox -> case x of1490 "Array" -> ($ v) . fix $ \(redo :: Val -> Eval Val) x -> case x of 1491 1491 VRef (MkRef (IArray a)) -> return (VRef $ arrayRef a) 1492 1492 VRef ref@(MkRef IScalar{}) -> redo =<< readRef ref
