// If the first pattern is an or-pattern, expand this pattern. Otherwise, return `None`.
If the first pattern is an or-pattern, expand this pattern. Otherwise, return `None`.
If the first pattern is an or - pattern expand this pattern . Otherwise return ` None ` .
fn expand_or_pat(&self) -> Option<Vec<Self>> {
        if self.is_empty() {
            None
        } else if let PatKind::Or { pats } = &*self.head().kind {
            Some(
                pats.iter()
                    .map(|pat| {
                        let mut new_patstack = PatStack::from_pattern(pat);
                        new_patstack.pats.extend_from_slice(&self.pats[1..]);
                        new_patstack
                    })
                    .collect(),
            )
        } else {
            None
        }
    }
fn expand_or_pat ( & self ) -> Option < Vec < Self > > { if self . is_empty ( ) { None } else if let PatKind :: Or { pats } = & * self . head ( ) . kind { Some ( pats . iter ( ) . map ( | pat | { let mut new_patstack = PatStack :: from_pattern ( pat ) ; new_patstack . pats . extend_from_slice ( & self . pats [ 1 .. ] ) ; new_patstack } ) . collect ( ) , ) } else { None } }
If the first pattern is an or-pattern, expand this pattern.
If the first pattern is an or - pattern expand this pattern .
&self