l0_check_patterns.py

l0_check_patterns.py

Module: l0_check_patterns

Source: compiler/stage1_py/l0_check_patterns.py Language: Python

Symbols

Namespace l0_check_patterns

Class l0_check_patterns::MatchCoverage

Pattern validation results shared with statement and liveness traversal.

Member Data l0_check_patterns.MatchCoverage.defined_variants

1
set defined_variants

Member Data l0_check_patterns.MatchCoverage.validated_variant_names

1
list validated_variant_names

Member Data l0_check_patterns.MatchCoverage.covered_variants

1
set covered_variants

Member Data l0_check_patterns.MatchCoverage.wildcard_is_unreachable

1
bool wildcard_is_unreachable

Member Data l0_check_patterns.MatchCoverage.reachable_arm_count

1
int reachable_arm_count

Class l0_check_patterns::PatternAnalysis

Case literals, validated enum patterns, and match coverage diagnostics.

Member Data l0_check_patterns.PatternAnalysis.lookup

1
SemanticLookup lookup

Member Data l0_check_patterns.PatternAnalysis.state

1
CheckerState state

Function l0_check_patterns.PatternAnalysis._case_literal_info

1
tuple[Type, object] | None l0_check_patterns.PatternAnalysis._case_literal_info(self, Expr expr)

Get type and value for a case arm literal.

Function l0_check_patterns.PatternAnalysis._decode_escaped_bytes

1
bytes | None l0_check_patterns.PatternAnalysis._decode_escaped_bytes(self, str text, Node node)

Decode a string literal, reporting errors.

Function l0_check_patterns.PatternAnalysis._validate_match_variant_pattern

1
str | None l0_check_patterns.PatternAnalysis._validate_match_variant_pattern(self, VariantPattern pattern, EnumType scrutinee_ty, EnumInfo|None enum_info)

Validate one match variant and return its canonical enum name.

Function l0_check_patterns.PatternAnalysis._match_coverage

1
MatchCoverage l0_check_patterns.PatternAnalysis._match_coverage(self, MatchStmt stmt, EnumType scrutinee_ty, EnumInfo|None enum_info)

Validate patterns and compute coverage before traversing arm bodies.

Parameters:

  • stmt: Match statement being checked.
  • scrutinee_ty: Resolved enum type of the scrutinee.
  • enum_info: Resolved enum metadata, when available.

Returns: Validated variant names, wildcard reachability, and coverage sets.

Function l0_check_patterns.PatternAnalysis._check_exhaustiveness

1
bool l0_check_patterns.PatternAnalysis._check_exhaustiveness(self, MatchStmt stmt, EnumType scrutinee_ty, MatchCoverage coverage)

Report match coverage diagnostics after checking all arm bodies.

Parameters:

  • stmt: Match statement being checked.
  • scrutinee_ty: Resolved enum type of the scrutinee.
  • coverage: Validated patterns and reachability from before traversal.

Returns: Whether a wildcard or explicit variants cover the complete enum.