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
Param
Description of a type-checked function parameter.
ParamId
Pat
PatRange
A range pattern. The boundaries must be of the same type and that type must be numeric.
Stmt
StmtId
TempLifetime
Temporary lifetime information for THIR expressions
Thir
A container for a THIR body.

Enums§

AdtExprBase
BlockSafety
BodyTy
ExprKind
InlineAsmOperand
LintLevel
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 🔒