Skip to main content

Module rules

Module rules 

Source
Expand description

引擎内置通用规则:只依赖 Lang 抽象,任何语言 crate 均可复用。

每条规则文档化其语义前提;所有提案都必须严格降低成本(runner 校验)。

Structs§

ArithIdentity
ArithReassoc
ArithZero
AssignBackFold
AssignPropagation
BitIdentity
BlockFlatten
块展平:Block 的直接孩子是 Block 且内层无任何声明(VarDecl/ ForEach/Catch 绑定引入作用域)→ 内层语句上提。典型形态:try 剥壳、 CFF 还原后的裸嵌套块。无声明 ⇒ 无遮蔽 ⇒ 语义等价。
BoolCompare
BoolNotFold
BoolShortCircuit
BooleanReturn
CmpConstFold
ConstCondition
ConstFoldBin
DeadDecl
DeadStore
DeclAssignMerge
DoubleNegFold
数值双重取负:-(-x) → x(补码回绕下恒等:-(-MIN) ≡ MIN ≡ x); -(-lit) → |lit|(解析器不折负字面量的外层负)。
DoubleNot
IfAssignTernary
IfElseEmpty
IfToTernary
InverseAssignPair
LocalPropagation
MultiUseCopyPropagation
NotCompare
ParenRemoval
SelfAssign
StoreKill
TernaryBool
TernaryBoolOp
TernaryFold
TrailingContinue
TrailingReturn
UnreachableAfterTerminal

Functions§

all_rules
全量规则(含 DCE 类选配项;按设计文档“可选配,默认不启用“)。
default_rules
默认规则(保守集:不做 DCE 类清理)。