Skip to main content

Module thir

Module thir 

Source
Expand description

THIR datatypes and definitions. See the rustc dev guide for more info.

If you compare the THIR ExprKind to hir::ExprKind, you will see it is a good bit simpler. In fact, a number of the more straight-forward MIR simplifications are already done in the lowering to THIR. For example, method calls and overloaded operators are absent: they are expected to be converted into ExprKind::Call instances.

Modules§

size_asserts 🔒
visit

Macros§

thir_with_elements 🔒

Structs§

AdtExpr
Arm
A match arm.
ArmId
Ascription
Block
BlockId
ClosureExpr
Expr
A THIR expression.
ExprId
FieldExpr
Represents the association of a field identifier and an expression.
FieldPat
FruInfo
InlineAsmExpr
LocalVarId
LoopMatchMatchData
The match part of a #[loop_match]
Param
Description of a type-checked function parameter.
ParamId
Pat
PatExtra
Additional per-node data that is not present on most THIR pattern nodes.
PatRange
A range pattern. The boundaries must be of the same type and that type must be numeric.
Stmt
StmtId
Thir
A container for a THIR body.

Enums§

AdtExprBase
BlockSafety
BodyTy
DerefPatBorrowMode
ExprKind
InlineAsmOperand
LogicalOp
PatKind
PatRangeBoundary
A (possibly open) boundary of a range pattern. If present, the const must be of a numeric type.
StmtKind

Type Aliases§

UserTy 🔒