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.