{"ast_node_type":"other","tokens":[{"end":50,"kind":"keyword","start":0,"text":"if"}]}
        if matches!(ctor, Constructor::UnionField)
        let fields: Vec<_> = self.0.drain((len - arity)..).rev().collect();
            && fields.iter().filter(|p| !matches!(p.ctor(), Constructor::Wildcard)).count() >= 2