[−][src]Module rustc_middle::hir::map::blocks
This module provides a simplified abstraction for working with
code blocks identified by their integer NodeId. In particular,
it captures a common set of attributes that all "function-like
things" (represented by FnLike instances) share. For example,
all FnLike instances have a type signature (be it explicit or
inferred). And all FnLike instances have a body, i.e., the code
that is run when the function-like thing it represents is invoked.
With the above abstraction in place, one can treat the program
text as a collection of blocks of code (and most such blocks are
nested within a uniquely determined FnLike), and users can ask
for the Code associated with a particular NodeId.
Structs
| ClosureParts | These are all the components one can extract from a closure expr for use when implementing FnLikeNode operations. |
| FnLikeNode | An FnLikeNode is a Node that is like a fn, in that it has a decl and a body (as well as a NodeId, a span, etc). |
| ItemFnParts | These are all the components one can extract from a fn item for use when implementing FnLikeNode operations. |
Enums
| Code | Carries either an FnLikeNode or a Expr, as these are the two constructs that correspond to "code" (as in, something from which we can construct a control-flow graph). |
Traits
| MaybeFnLike | MaybeFnLike wraps a method that indicates if an object corresponds to some FnLikeNode. |