Expand description

Code related to match expressions. These are sufficiently complex to warrant their own module and submodules. :) This main module includes the high-level algorithm, the submodules contain the details.

This also includes code for pattern bindings in let statements and function parameters.

Modules

Structs

  • ArmHasGuard is a wrapper around a boolean flag. It indicates whether a match arm has a guard expression attached to it.
  • Ascription 🔒
    Indicates that the type of source must be a subtype of the user-given type user_ty; this is basically a no-op but can influence region inference.
  • Binding 🔒
  • Candidate 🔒
  • MatchPair 🔒
  • Test 🔒
    A test to perform to determine which Candidate matches a value.

Enums

Functions

  • A depth-first traversal of the Candidate and all of its recursive subcandidates.