Lines Matching refs:Pat

28     pub enum Pat {
117 pub subpat: Option<(Token![@], Box<Pat>)>,
127 pub cases: Punctuated<Pat, Token![|]>,
137 pub pat: Box<Pat>,
148 pub pat: Box<Pat>,
167 pub elems: Punctuated<Pat, Token![,]>,
190 pub elems: Punctuated<Pat, Token![,]>,
202 pub elems: Punctuated<Pat, Token![,]>,
211 pub pat: Box<Pat>,
236 pub pat: Box<Pat>,
253 FieldPat, Pat, PatIdent, PatOr, PatParen, PatReference, PatRest, PatSlice, PatStruct,
264 impl Pat { implementation
307 input.call(pat_wild).map(Pat::Wild) in parse_single()
318 input.call(pat_ident).map(Pat::Ident) in parse_single()
320 input.call(pat_reference).map(Pat::Reference) in parse_single()
324 input.call(pat_slice).map(Pat::Slice) in parse_single()
328 input.call(pat_const).map(Pat::Verbatim) in parse_single()
392 pat: Box::new(Pat::parse_single(input)?), in parse()
399 fn multi_pat_impl(input: ParseStream, leading_vert: Option<Token![|]>) -> Result<Pat> { in multi_pat_impl() argument
400 let mut pat = Pat::parse_single(input)?; in multi_pat_impl()
409 let pat = Pat::parse_single(input)?; in multi_pat_impl()
412 pat = Pat::Or(PatOr { in multi_pat_impl()
421 fn pat_path_or_macro_or_struct_or_range(input: ParseStream) -> Result<Pat> { in pat_path_or_macro_or_struct_or_range() argument
432 return Ok(Pat::Macro(ExprMacro { in pat_path_or_macro_or_struct_or_range()
444 pat_struct(input, qself, path).map(Pat::Struct) in pat_path_or_macro_or_struct_or_range()
446 pat_tuple_struct(input, qself, path).map(Pat::TupleStruct) in pat_path_or_macro_or_struct_or_range()
450 Ok(Pat::Path(ExprPath { in pat_path_or_macro_or_struct_or_range()
465 fn pat_box(begin: ParseBuffer, input: ParseStream) -> Result<Pat> { in pat_box() argument
467 Pat::parse_single(input)?; in pat_box()
468 Ok(Pat::Verbatim(verbatim::between(&begin, input))) in pat_box()
486 let subpat = Pat::parse_single(input)?; in pat_ident()
505 let value = Pat::parse_multi_with_leading_vert(&content)?; in pat_tuple_struct()
577 pat: Box::new(Pat::parse_multi_with_leading_vert(input)?), in field_pat()
587 Pat::Verbatim(verbatim::between(&begin, input)) in field_pat()
589 Pat::Ident(PatIdent { in field_pat()
606 fn pat_range(input: ParseStream, qself: Option<QSelf>, path: Path) -> Result<Pat> { in pat_range() argument
612 Ok(Pat::Range(ExprRange { in pat_range()
624 fn pat_range_half_open(input: ParseStream) -> Result<Pat> { in pat_range_half_open() argument
628 Ok(Pat::Range(ExprRange { in pat_range_half_open()
636 RangeLimits::HalfOpen(dot2_token) => Ok(Pat::Rest(PatRest { in pat_range_half_open()
645 fn pat_paren_or_tuple(input: ParseStream) -> Result<Pat> { in pat_paren_or_tuple() argument
651 let value = Pat::parse_multi_with_leading_vert(&content)?; in pat_paren_or_tuple()
653 if elems.is_empty() && !matches!(value, Pat::Rest(_)) { in pat_paren_or_tuple()
654 return Ok(Pat::Paren(PatParen { in pat_paren_or_tuple()
668 Ok(Pat::Tuple(PatTuple { in pat_paren_or_tuple()
680 pat: Box::new(Pat::parse_single(input)?), in pat_reference()
684 fn pat_lit_or_range(input: ParseStream) -> Result<Pat> { in pat_lit_or_range() argument
692 Ok(Pat::Range(ExprRange { in pat_lit_or_range()
719 fn into_pat(self) -> Pat { in into_pat() argument
721 PatRangeBound::Const(pat) => Pat::Const(pat), in into_pat()
722 PatRangeBound::Lit(pat) => Pat::Lit(pat), in into_pat()
723 PatRangeBound::Path(pat) => Pat::Path(pat), in into_pat()
767 let value = Pat::parse_multi_with_leading_vert(&content)?; in pat_slice()
769 Pat::Range(pat) if pat.start.is_none() || pat.end.is_none() => { in pat_slice()
813 FieldPat, Pat, PatIdent, PatOr, PatParen, PatReference, PatRest, PatSlice, PatStruct,
909 && !matches!(self.elems[0], Pat::Rest { .. }) in to_tokens()