【发布时间】:2019-10-17 00:11:50
【问题描述】:
我最近遇到了以下代码,很困扰我
lowerSafeForeignCall dflags block
| (entry, middle, CmmForeignCall { .. }) <- blockSplit block
= do
-- do block stuffs
-- Block doesn't end in a safe foreign call:
| otherwise = return block
这段代码来自 https://phabricator.haskell.org/rGHCb0534f78a73f972e279eed4447a5687bd6a8308e
在文件compiler/cmm/CmmLayoutStack.hs中
第 983 行
我真的很想知道这是什么lowerSafeForeignCall 是一个函数,而 | 和 'otherwise' 表示这个函数使用了守卫。所以
(entry, middle, CmmForeignCall { .. }) <- blockSplit block
必须是 Bool 类型。但是
【问题讨论】:
标签: haskell ghc guard-clause pattern-guards