Module rustc_mir::hair::pattern::_match [−][src]
🔬 This is a nightly-only experimental API. (rustc_private
)
this crate is being loaded from the sysroot, an unstable location; did you mean to load this crate from crates.io via Cargo.toml
instead?
Structs
LiteralExpander |
[ Experimental ]
|
MatchCheckCtxt |
[ Experimental ]
|
Matrix |
[ Experimental ]
|
PatternContext |
[ Experimental ]
|
Witness |
[ Experimental ] A stack of patterns in reverse order of construction |
Enums
Constructor |
[ Experimental ]
|
Usefulness |
[ Experimental ]
|
WitnessPreference |
[ Experimental ]
|
Functions
all_constructors |
[ Experimental ] This determines the set of all possible constructors of a pattern matching
values of type |
constructor_arity |
[ Experimental ] This computes the arity of a constructor. The arity of a constructor is how many subpattern patterns of that constructor should be expanded to. |
constructor_covered_by_range |
[ Experimental ]
|
constructor_sub_pattern_tys |
[ Experimental ] This computes the types of the sub patterns that a constructor should be expanded to. |
expand_pattern |
[ Experimental ]
|
is_useful |
[ Experimental ] Algorithm from http://moscova.inria.fr/~maranget/papers/warn/index.html The algorithm from the paper has been modified to correctly handle empty types. The changes are: (0) We don't exit early if the pattern matrix has zero rows. We just continue to recurse over columns. (1) all_constructors will only return constructors that are statically possible. eg. it will only return Ok for Result<T, !> |
is_useful_specialized |
[ Experimental ]
|
max_slice_length |
[ Experimental ]
|
pat_constructors |
[ Experimental ] Determines the constructors that the given pattern can be specialized to. |
patterns_for_variant |
[ Experimental ]
|
slice_pat_covered_by_constructor |
[ Experimental ]
|
specialize |
[ Experimental ] This is the main specialization step. It expands the first pattern in the given row
into |