Lines Matching refs:tail

1223                     if let Some((head, tail)) = input.try_split_at($mangled.len()) {
1225 return Ok(($typename::$variant, tail));
1340 if let Ok(tail) = consume(b"_Z", input).or_else(|_| consume(b"__Z", input)) { in parse()
1341 let (encoding, tail) = Encoding::parse(ctx, subs, tail)?; in parse()
1342 let (clone_suffixes, tail) = zero_or_more(ctx, subs, tail)?; in parse()
1343 return Ok((MangledName::Encoding(encoding, clone_suffixes), tail)); in parse()
1346 if let Ok(tail) = consume(b"___Z", input).or_else(|_| consume(b"____Z", input)) { in parse()
1347 let (encoding, tail) = Encoding::parse(ctx, subs, tail)?; in parse()
1348 let tail = consume(b"_block_invoke", tail)?; in parse() localVariable
1350 let tail_opt = match consume(b"_", tail).or_else(|_| consume(b".", tail)) { in parse()
1351 Ok(tail) => Some(parse_number(10, false, tail)?), in parse()
1352 Err(_) => parse_number(10, false, tail).ok(), in parse()
1355 let (digits, tail) = match tail_opt { in parse()
1356 Some((digits, tail)) => (Some(digits), tail), in parse()
1357 None => (None, tail), in parse()
1360 return Ok((MangledName::BlockInvoke(encoding, digits), tail)); in parse()
1363 if let Ok(tail) = consume(b"_GLOBAL_", input) { in parse()
1364 let (global_ctor_dtor, tail) = GlobalCtorDtor::parse(ctx, subs, tail)?; in parse()
1365 return Ok((MangledName::GlobalCtorDtor(global_ctor_dtor), tail)); in parse()
1370 let (ty, tail) = TypeHandle::parse(ctx, subs, input)?; in parse()
1371 Ok((MangledName::Type(ty), tail)) in parse()
1434 if let Ok((name, tail)) = Name::parse(ctx, subs, input) { in parse()
1435 if let Ok((ty, tail)) = BareFunctionType::parse(ctx, subs, tail) { in parse()
1436 return Ok((Encoding::Function(name, ty), tail)); in parse()
1438 return Ok((Encoding::Data(name), tail)); in parse()
1442 let (name, tail) = SpecialName::parse(ctx, subs, input)?; in parse()
1443 Ok((Encoding::Special(name), tail)) in parse()
1561 let tail = consume(b".", input)?; in parse() localVariable
1562 let (identifier, mut tail) = CloneTypeIdentifier::parse(ctx, subs, tail)?; in parse()
1565 while let Ok((n, t)) = consume(b".", tail).and_then(|t| parse_number(10, false, t)) { in parse()
1567 tail = t; in parse()
1571 Ok((clone_suffix, tail)) in parse()
1612 let tail = match input.next_or(error::Error::UnexpectedEnd)? { in parse() localVariable
1617 match tail.next_or(error::Error::UnexpectedEnd)? { in parse()
1618 (b'I', tail) => { in parse()
1619 let tail = consume(b"_", tail)?; in parse() localVariable
1620 let (name, tail) = MangledName::parse(ctx, subs, tail)?; in parse()
1621 Ok((GlobalCtorDtor::Ctor(Box::new(name)), tail)) in parse()
1623 (b'D', tail) => { in parse()
1624 let tail = consume(b"_", tail)?; in parse() localVariable
1625 let (name, tail) = MangledName::parse(ctx, subs, tail)?; in parse()
1626 Ok((GlobalCtorDtor::Dtor(Box::new(name)), tail)) in parse()
1693 if let Ok((name, tail)) = NestedName::parse(ctx, subs, input) { in parse()
1694 return Ok((Name::Nested(name), tail)); in parse()
1697 if let Ok((name, tail)) = UnscopedName::parse(ctx, subs, input) { in parse()
1698 if tail.peek() == Some(b'I') { in parse()
1703 let (args, tail) = TemplateArgs::parse(ctx, subs, tail)?; in parse()
1704 return Ok((Name::UnscopedTemplate(handle, args), tail)); in parse()
1706 return Ok((Name::Unscoped(name), tail)); in parse()
1710 if let Ok((name, tail)) = UnscopedTemplateNameHandle::parse(ctx, subs, input) { in parse()
1711 let (args, tail) = TemplateArgs::parse(ctx, subs, tail)?; in parse()
1712 return Ok((Name::UnscopedTemplate(name, args), tail)); in parse()
1715 let (name, tail) = LocalName::parse(ctx, subs, input)?; in parse()
1716 Ok((Name::Local(name), tail)) in parse()
1798 if let Ok(tail) = consume(b"St", input) { in parse()
1799 let (name, tail) = UnqualifiedName::parse(ctx, subs, tail)?; in parse()
1800 return Ok((UnscopedName::Std(name), tail)); in parse()
1803 let (name, tail) = UnqualifiedName::parse(ctx, subs, input)?; in parse()
1804 Ok((UnscopedName::Unqualified(name), tail)) in parse()
1875 if let Ok((name, tail)) = UnscopedName::parse(ctx, subs, input) { in parse()
1879 return Ok((handle, tail)); in parse()
1882 let (sub, tail) = Substitution::parse(ctx, subs, input)?; in parse()
1886 Ok((UnscopedTemplateNameHandle::WellKnown(component), tail)) in parse()
1891 Ok((UnscopedTemplateNameHandle::BackReference(idx), tail)) in parse()
1946 let tail = consume(b"N", input)?; in parse() localVariable
1948 let (cv_qualifiers, tail) = if let Ok((q, tail)) = CvQualifiers::parse(ctx, subs, tail) { in parse()
1949 (q, tail) in parse()
1951 (Default::default(), tail) in parse()
1954 let (ref_qualifier, tail) = if let Ok((r, tail)) = RefQualifier::parse(ctx, subs, tail) { in parse()
1955 (Some(r), tail) in parse()
1957 (None, tail) in parse()
1960 let (prefix, tail) = PrefixHandle::parse(ctx, subs, tail)?; in parse()
1961 let tail = consume(b"E", tail)?; in parse() localVariable
1972 tail, in parse()
1976 tail, in parse()
2169 let mut tail = input; in parse() localVariable
2173 try_begin_parse!("PrefixHandle iteration", ctx, tail); in parse()
2175 match tail.peek() { in parse()
2178 return Ok((handle, tail)); in parse()
2185 let (sub, tail_tail) = Substitution::parse(ctx, subs, tail)?; in parse()
2194 tail = tail_tail; in parse()
2198 let (param, tail_tail) = TemplateParam::parse(ctx, subs, tail)?; in parse()
2200 tail = tail_tail; in parse()
2210 if let Ok((decltype, tail_tail)) = Decltype::parse(ctx, subs, tail) { in parse()
2212 tail = tail_tail; in parse()
2214 let (name, tail_tail) = UnqualifiedName::parse(ctx, subs, tail)?; in parse()
2220 tail = tail_tail; in parse()
2227 let (args, tail_tail) = TemplateArgs::parse(ctx, subs, tail)?; in parse()
2230 tail = tail_tail; in parse()
2243 let (name, tail_tail) = SourceName::parse(ctx, subs, tail)?; in parse()
2247 tail = consume(b"M", tail_tail).unwrap(); in parse()
2255 tail = tail_tail; in parse()
2258 Some(c) if UnqualifiedName::starts_with(c, &tail) => { in parse()
2260 let (name, tail_tail) = UnqualifiedName::parse(ctx, subs, tail)?; in parse()
2266 tail = tail_tail; in parse()
2270 return Ok((handle, tail)); in parse()
2271 } else if tail.is_empty() { in parse()
2454 if let Ok((op, tail)) = OperatorName::parse(ctx, subs, input) { in parse()
2455 return Ok((UnqualifiedName::Operator(op), tail)); in parse()
2458 if let Ok((ctor_dtor, tail)) = CtorDtorName::parse(ctx, subs, input) { in parse()
2459 return Ok((UnqualifiedName::CtorDtor(ctor_dtor), tail)); in parse()
2462 if let Ok(tail) = consume(b"L", input) { in parse()
2463 let (name, tail) = SourceName::parse(ctx, subs, tail)?; in parse()
2464 let (discr, tail) = if let Ok((d, t)) = Discriminator::parse(ctx, subs, tail) { in parse()
2467 (None, tail) in parse()
2469 return Ok((UnqualifiedName::LocalSourceName(name, discr), tail)); in parse()
2472 if let Ok((source, tail)) = SourceName::parse(ctx, subs, input) { in parse()
2473 return Ok((UnqualifiedName::Source(source), tail)); in parse()
2476 if let Ok((tagged, tail)) = TaggedName::parse(ctx, subs, input) { in parse()
2477 return Ok((UnqualifiedName::ABITag(tagged), tail)); in parse()
2480 if let Ok((closure, tail)) = ClosureTypeName::parse(ctx, subs, input) { in parse()
2481 return Ok((UnqualifiedName::ClosureType(closure), tail)); in parse()
2485 .map(|(unnamed, tail)| (UnqualifiedName::UnnamedType(unnamed), tail)) in parse()
2596 let (head, tail) = match input.try_split_at(source_name_len as _) { in parse()
2597 Some((head, tail)) => (head, tail), in parse()
2607 Ok((source_name, tail)) in parse()
2667 let tail = consume(b"B", input)?; in parse() localVariable
2668 let (source_name, tail) = SourceName::parse(ctx, subs, tail)?; in parse()
2669 Ok((TaggedName(source_name), tail)) in parse()
2738 let tail = input.range_from(end..); in parse() localVariable
2742 end: tail.index(), in parse()
2745 Ok((identifier, tail)) in parse()
2823 let tail = input.range_from(end..); in parse() localVariable
2827 end: tail.index(), in parse()
2830 Ok((identifier, tail)) in parse()
2889 parse_number(36, false, input).map(|(num, tail)| (SeqId(num as _), tail)) in parse()
2937 let (operator, tail) = OperatorName::parse_internal(ctx, subs, input, true)?; in parse_from_expr()
2941 let (first, tail) = Expression::parse(ctx, subs, tail)?; in parse_from_expr()
2943 Ok((expr, tail)) in parse_from_expr()
2945 let (first, tail) = Expression::parse(ctx, subs, tail)?; in parse_from_expr()
2946 let (second, tail) = Expression::parse(ctx, subs, tail)?; in parse_from_expr()
2948 Ok((expr, tail)) in parse_from_expr()
2950 let (first, tail) = Expression::parse(ctx, subs, tail)?; in parse_from_expr()
2951 let (second, tail) = Expression::parse(ctx, subs, tail)?; in parse_from_expr()
2952 let (third, tail) = Expression::parse(ctx, subs, tail)?; in parse_from_expr()
2955 Ok((expr, tail)) in parse_from_expr()
2969 if let Ok((simple, tail)) = SimpleOperatorName::parse(ctx, subs, input) { in parse_internal()
2970 return Ok((OperatorName::Simple(simple), tail)); in parse_internal()
2973 if let Ok(tail) = consume(b"cv", input) { in parse_internal()
2977 let parse_result = TypeHandle::parse(ctx, subs, tail); in parse_internal()
2979 let (ty, tail) = parse_result?; in parse_internal()
2981 return Ok((OperatorName::Cast(ty), tail)); in parse_internal()
2983 return Ok((OperatorName::Conversion(ty), tail)); in parse_internal()
2987 if let Ok(tail) = consume(b"li", input) { in parse_internal()
2988 let (name, tail) = SourceName::parse(ctx, subs, tail)?; in parse_internal()
2989 return Ok((OperatorName::Literal(name), tail)); in parse_internal()
2992 let tail = consume(b"v", input)?; in parse_internal() localVariable
2993 let (arity, tail) = match tail.peek() { in parse_internal()
2994 Some(c) if b'0' <= c && c <= b'9' => (c - b'0', tail.range_from(1..)), in parse_internal()
2998 let (name, tail) = SourceName::parse(ctx, subs, tail)?; in parse_internal()
2999 Ok((OperatorName::VendorExtension(arity, name), tail)) in parse_internal()
3151 if let Ok(tail) = consume(b"h", input) { in parse()
3152 let (offset, tail) = NvOffset::parse(ctx, subs, tail)?; in parse()
3153 let tail = consume(b"_", tail)?; in parse() localVariable
3154 return Ok((CallOffset::NonVirtual(offset), tail)); in parse()
3157 if let Ok(tail) = consume(b"v", input) { in parse()
3158 let (offset, tail) = VOffset::parse(ctx, subs, tail)?; in parse()
3159 let tail = consume(b"_", tail)?; in parse() localVariable
3160 return Ok((CallOffset::Virtual(offset), tail)); in parse()
3206 Number::parse(ctx, subs, input).map(|(num, tail)| (NvOffset(num), tail)) in parse()
3226 let (offset, tail) = Number::parse(ctx, subs, input)?; in parse()
3227 let tail = consume(b"_", tail)?; in parse() localVariable
3228 let (virtual_offset, tail) = Number::parse(ctx, subs, tail)?; in parse()
3229 Ok((VOffset(offset, virtual_offset), tail)) in parse()
3300 let mut tail = consume(b"C", input)?; in parse() localVariable
3301 let inheriting = match tail.peek() { in parse()
3303 tail = consume(b"I", tail)?; in parse()
3309 let mut ctor_type: CtorDtorName = match tail in parse()
3316 tail = t; in parse()
3320 tail = t; in parse()
3324 tail = t; in parse()
3328 tail = t; in parse()
3335 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
3337 Ok((ctor_type, tail)) in parse()
3339 Ok((ctor_type, tail)) in parse()
3348 Some((b"D0", tail)) => Ok((CtorDtorName::DeletingDestructor, tail)), in parse()
3349 Some((b"D1", tail)) => Ok((CtorDtorName::CompleteDestructor, tail)), in parse()
3350 Some((b"D2", tail)) => Ok((CtorDtorName::BaseDestructor, tail)), in parse()
3351 Some((b"D4", tail)) => Ok((CtorDtorName::MaybeInChargeDestructor, tail)), in parse()
3516 tail: IndexStr<'b>, in parse()
3521 Ok((handle, tail)) in parse()
3524 if let Ok((builtin, tail)) = BuiltinType::parse(ctx, subs, input) { in parse()
3528 return Ok((handle, tail)); in parse()
3531 if let Ok((ty, tail)) = ClassEnumType::parse(ctx, subs, input) { in parse()
3533 return insert_and_return_handle(ty, subs, tail); in parse()
3536 if let Ok((sub, tail)) = Substitution::parse(ctx, subs, input) { in parse()
3542 if tail.peek() != Some(b'I') { in parse()
3545 return Ok((TypeHandle::WellKnown(component), tail)); in parse()
3550 return Ok((TypeHandle::BackReference(idx), tail)); in parse()
3556 if let Ok((funty, tail)) = FunctionType::parse(ctx, subs, input) { in parse()
3558 return insert_and_return_handle(ty, subs, tail); in parse()
3561 if let Ok((ty, tail)) = ArrayType::parse(ctx, subs, input) { in parse()
3563 return insert_and_return_handle(ty, subs, tail); in parse()
3566 if let Ok((ty, tail)) = VectorType::parse(ctx, subs, input) { in parse()
3568 return insert_and_return_handle(ty, subs, tail); in parse()
3571 if let Ok((ty, tail)) = PointerToMemberType::parse(ctx, subs, input) { in parse()
3573 return insert_and_return_handle(ty, subs, tail); in parse()
3576 if let Ok((param, tail)) = TemplateParam::parse(ctx, subs, input) { in parse()
3580 if tail.peek() != Some(b'I') { in parse()
3582 return insert_and_return_handle(ty, subs, tail); in parse()
3597 if let Ok((_, new_tail)) = TemplateArgs::parse(ctx, &mut tmp_subs, tail) { in parse()
3601 return insert_and_return_handle(ty, subs, tail); in parse()
3612 if let Ok((ttp, tail)) = TemplateTemplateParamHandle::parse(ctx, subs, input) { in parse()
3613 let (args, tail) = TemplateArgs::parse(ctx, subs, tail)?; in parse()
3615 return insert_and_return_handle(ty, subs, tail); in parse()
3618 if let Ok((param, tail)) = Decltype::parse(ctx, subs, input) { in parse()
3620 return insert_and_return_handle(ty, subs, tail); in parse()
3623 if let Ok((qualifiers, tail)) = CvQualifiers::parse(ctx, subs, input) { in parse()
3627 if tail.len() < input.len() { in parse()
3628 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
3630 return insert_and_return_handle(ty, subs, tail); in parse()
3634 if let Ok(tail) = consume(b"P", input) { in parse()
3635 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
3637 return insert_and_return_handle(ty, subs, tail); in parse()
3640 if let Ok(tail) = consume(b"R", input) { in parse()
3641 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
3643 return insert_and_return_handle(ty, subs, tail); in parse()
3646 if let Ok(tail) = consume(b"O", input) { in parse()
3647 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
3649 return insert_and_return_handle(ty, subs, tail); in parse()
3652 if let Ok(tail) = consume(b"C", input) { in parse()
3653 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
3655 return insert_and_return_handle(ty, subs, tail); in parse()
3658 if let Ok(tail) = consume(b"G", input) { in parse()
3659 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
3661 return insert_and_return_handle(ty, subs, tail); in parse()
3664 if let Ok(tail) = consume(b"U", input) { in parse()
3665 let (name, tail) = SourceName::parse(ctx, subs, tail)?; in parse()
3666 let (args, tail) = if let Ok((args, tail)) = TemplateArgs::parse(ctx, subs, tail) { in parse()
3667 (Some(args), tail) in parse()
3669 (None, tail) in parse()
3671 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
3673 return insert_and_return_handle(ty, subs, tail); in parse()
3676 let tail = consume(b"Dp", input)?; in parse() localVariable
3677 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
3679 insert_and_return_handle(ty, subs, tail) in parse()
3909 let (restrict, tail) = if let Ok(tail) = consume(b"r", input) { in parse()
3910 (true, tail) in parse()
3915 let (volatile, tail) = if let Ok(tail) = consume(b"V", tail) { in parse()
3916 (true, tail) in parse()
3918 (false, tail) in parse()
3921 let (const_, tail) = if let Ok(tail) = consume(b"K", tail) { in parse()
3922 (true, tail) in parse()
3924 (false, tail) in parse()
3933 Ok((qualifiers, tail)) in parse()
4075 if let Ok((ty, tail)) = StandardBuiltinType::parse(ctx, subs, input) { in parse()
4076 return Ok((BuiltinType::Standard(ty), tail)); in parse()
4079 let tail = consume(b"u", input)?; in parse() localVariable
4080 let (name, tail) = SourceName::parse(ctx, subs, tail)?; in parse()
4081 Ok((BuiltinType::Extension(name), tail)) in parse()
4164 let (cv_qualifiers, tail) = in parse()
4165 if let Ok((cv_qualifiers, tail)) = CvQualifiers::parse(ctx, subs, input) { in parse()
4166 (cv_qualifiers, tail) in parse()
4171 let (transaction_safe, tail) = if let Ok(tail) = consume(b"Dx", tail) { in parse()
4172 (true, tail) in parse()
4174 (false, tail) in parse()
4177 let tail = consume(b"F", tail)?; in parse() localVariable
4179 let (extern_c, tail) = if let Ok(tail) = consume(b"Y", tail) { in parse()
4180 (true, tail) in parse()
4182 (false, tail) in parse()
4185 let (bare, tail) = BareFunctionType::parse(ctx, subs, tail)?; in parse()
4187 let (ref_qualifier, tail) = in parse()
4188 if let Ok((ref_qualifier, tail)) = RefQualifier::parse(ctx, subs, tail) { in parse()
4189 (Some(ref_qualifier), tail) in parse()
4191 (None, tail) in parse()
4194 let tail = consume(b"E", tail)?; in parse() localVariable
4203 Ok((func_ty, tail)) in parse()
4283 let (types, tail) = one_or_more::<TypeHandle>(ctx, subs, input)?; in parse()
4284 Ok((BareFunctionType(types), tail)) in parse()
4350 let tail = consume(b"D", input)?; in parse() localVariable
4352 if let Ok(tail) = consume(b"t", tail) { in parse()
4353 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
4354 let tail = consume(b"E", tail)?; in parse() localVariable
4355 return Ok((Decltype::IdExpression(expr), tail)); in parse()
4358 let tail = consume(b"T", tail)?; in parse() localVariable
4359 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
4360 let tail = consume(b"E", tail)?; in parse() localVariable
4361 Ok((Decltype::Expression(expr), tail)) in parse()
4422 if let Ok((name, tail)) = Name::parse(ctx, subs, input) { in parse()
4423 return Ok((ClassEnumType::Named(name), tail)); in parse()
4426 let tail = consume(b"T", input)?; in parse() localVariable
4428 if let Ok(tail) = consume(b"s", tail) { in parse()
4429 let (name, tail) = Name::parse(ctx, subs, tail)?; in parse()
4430 return Ok((ClassEnumType::ElaboratedStruct(name), tail)); in parse()
4433 if let Ok(tail) = consume(b"u", tail) { in parse()
4434 let (name, tail) = Name::parse(ctx, subs, tail)?; in parse()
4435 return Ok((ClassEnumType::ElaboratedUnion(name), tail)); in parse()
4438 let tail = consume(b"e", tail)?; in parse() localVariable
4439 let (name, tail) = Name::parse(ctx, subs, tail)?; in parse()
4440 Ok((ClassEnumType::ElaboratedEnum(name), tail)) in parse()
4597 let tail = consume(b"A", input)?; in parse() localVariable
4599 if let Ok((num, tail)) = parse_number(10, false, tail) { in parse()
4601 let tail = consume(b"_", tail)?; in parse() localVariable
4602 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
4603 return Ok((ArrayType::DimensionNumber(num as _, ty), tail)); in parse()
4606 if let Ok((expr, tail)) = Expression::parse(ctx, subs, tail) { in parse()
4607 let tail = consume(b"_", tail)?; in parse() localVariable
4608 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
4609 return Ok((ArrayType::DimensionExpression(expr, ty), tail)); in parse()
4612 let tail = consume(b"_", tail)?; in parse() localVariable
4613 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
4614 Ok((ArrayType::NoDimension(ty), tail)) in parse()
4748 let tail = consume(b"Dv", input)?; in parse() localVariable
4750 if let Ok((num, tail)) = parse_number(10, false, tail) { in parse()
4752 let tail = consume(b"_", tail)?; in parse() localVariable
4753 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
4754 return Ok((VectorType::DimensionNumber(num as _, ty), tail)); in parse()
4757 let tail = consume(b"_", tail)?; in parse() localVariable
4758 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
4759 let tail = consume(b"_", tail)?; in parse() localVariable
4760 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
4761 Ok((VectorType::DimensionExpression(expr, ty), tail)) in parse()
4834 let tail = consume(b"M", input)?; in parse() localVariable
4835 let (ty1, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
4836 let (ty2, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
4837 Ok((PointerToMemberType(ty1, ty2), tail)) in parse()
4985 if let Ok((sub, tail)) = Substitution::parse(ctx, subs, input) { in parse()
4988 return Ok((TemplateTemplateParamHandle::WellKnown(component), tail)); in parse()
4994 return Ok((TemplateTemplateParamHandle::BackReference(idx), tail)); in parse()
4999 let (param, tail) = TemplateParam::parse(ctx, subs, input)?; in parse()
5004 Ok((handle, tail)) in parse()
5047 let tail = consume(b"f", input)?; in parse() localVariable
5048 if tail.is_empty() { in parse()
5052 let (scope, tail) = if let Ok(tail) = consume(b"L", tail) { in parse()
5053 parse_number(10, false, tail)? in parse()
5055 (0, tail) in parse()
5058 let tail = consume(b"p", tail)?; in parse() localVariable
5060 let (qualifiers, tail) = CvQualifiers::parse(ctx, subs, tail)?; in parse()
5062 let (param, tail) = if tail.peek() == Some(b'T') { in parse()
5063 (None, consume(b"T", tail)?) in parse()
5064 } else if let Ok((num, tail)) = parse_number(10, false, tail) { in parse()
5065 (Some(num as usize + 1), consume(b"_", tail)?) in parse()
5067 (Some(0), consume(b"_", tail)?) in parse()
5070 Ok((FunctionParam(scope as _, qualifiers, param), tail)) in parse()
5108 let tail = consume(b"I", input)?; in parse() localVariable
5110 let (args, tail) = one_or_more::<TemplateArg>(ctx, subs, tail)?; in parse()
5111 let tail = consume(b"E", tail)?; in parse() localVariable
5112 Ok((TemplateArgs(args), tail)) in parse()
5207 if let Ok(tail) = consume(b"X", input) { in parse()
5208 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5209 let tail = consume(b"E", tail)?; in parse() localVariable
5210 return Ok((TemplateArg::Expression(expr), tail)); in parse()
5213 if let Ok((expr, tail)) = ExprPrimary::parse(ctx, subs, input) { in parse()
5214 return Ok((TemplateArg::SimpleExpression(expr), tail)); in parse()
5217 if let Ok((ty, tail)) = TypeHandle::parse(ctx, subs, input) { in parse()
5218 return Ok((TemplateArg::Type(ty), tail)); in parse()
5221 let tail = if input.peek() == Some(b'J') { in parse() localVariable
5227 let (args, tail) = if tail.peek() == Some(b'E') { in parse()
5228 (vec![], tail) in parse()
5230 zero_or_more::<TemplateArg>(ctx, subs, tail)? in parse()
5232 let tail = consume(b"E", tail)?; in parse() localVariable
5233 Ok((TemplateArg::ArgPack(args), tail)) in parse()
5284 let (name, tail) = UnqualifiedName::parse(ctx, subs, input)?; in parse()
5286 if let Ok((template, tail)) = TemplateArgs::parse(ctx, subs, tail) { in parse()
5291 Ok((MemberName(Name::UnscopedTemplate(handle, template)), tail)) in parse()
5293 Ok((MemberName(Name::Unscoped(name)), tail)) in parse()
5514 if let Ok(tail) = consume(b"pp_", input) { in parse()
5515 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5517 return Ok((expr, tail)); in parse()
5520 if let Ok(tail) = consume(b"mm_", input) { in parse()
5521 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5523 return Ok((expr, tail)); in parse()
5526 if let Some((head, tail)) = input.try_split_at(2) { in parse()
5529 let (func, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5530 let (args, tail) = zero_or_more::<Expression>(ctx, subs, tail)?; in parse()
5531 let tail = consume(b"E", tail)?; in parse() localVariable
5533 return Ok((expr, tail)); in parse()
5536 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
5537 if let Ok(tail) = consume(b"_", tail) { in parse()
5538 let (exprs, tail) = zero_or_more::<Expression>(ctx, subs, tail)?; in parse()
5539 let tail = consume(b"E", tail)?; in parse() localVariable
5541 return Ok((expr, tail)); in parse()
5543 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5545 return Ok((expr, tail)); in parse()
5549 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
5550 let (exprs, tail) = zero_or_more::<Expression>(ctx, subs, tail)?; in parse()
5552 let tail = consume(b"E", tail)?; in parse() localVariable
5553 return Ok((expr, tail)); in parse()
5556 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5557 let tail = consume(b"E", tail)?; in parse() localVariable
5559 return Ok((expr, tail)); in parse()
5562 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
5563 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5565 return Ok((expr, tail)); in parse()
5568 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
5569 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5571 return Ok((expr, tail)); in parse()
5574 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
5575 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5577 return Ok((expr, tail)); in parse()
5580 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
5581 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5583 return Ok((expr, tail)); in parse()
5586 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
5588 return Ok((expr, tail)); in parse()
5591 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5593 return Ok((expr, tail)); in parse()
5596 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
5598 return Ok((expr, tail)); in parse()
5601 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5603 return Ok((expr, tail)); in parse()
5606 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
5608 return Ok((expr, tail)); in parse()
5611 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5613 return Ok((expr, tail)); in parse()
5616 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5618 return Ok((expr, tail)); in parse()
5621 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5622 let (name, tail) = MemberName::parse(ctx, subs, tail)?; in parse()
5624 return Ok((expr, tail)); in parse()
5627 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5628 let (name, tail) = MemberName::parse(ctx, subs, tail)?; in parse()
5630 return Ok((expr, tail)); in parse()
5633 let (first, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5634 let (second, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5636 return Ok((expr, tail)); in parse()
5639 if let Ok((param, tail)) = TemplateParam::parse(ctx, subs, tail) { in parse()
5641 return Ok((expr, tail)); in parse()
5644 let (param, tail) = FunctionParam::parse(ctx, subs, tail)?; in parse()
5646 return Ok((expr, tail)); in parse()
5649 let (args, tail) = zero_or_more::<TemplateArg>(ctx, subs, tail)?; in parse()
5651 let tail = consume(b"E", tail)?; in parse() localVariable
5652 return Ok((expr, tail)); in parse()
5655 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5657 return Ok((expr, tail)); in parse()
5660 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5662 return Ok((expr, tail)); in parse()
5666 return Ok((expr, tail)); in parse()
5669 if let Ok((expr, tail)) = can_be_global(true, ctx, subs, tail) { in parse()
5670 return Ok((expr, tail)); in parse()
5677 if let Ok((expr, tail)) = can_be_global(false, ctx, subs, input) { in parse()
5678 return Ok((expr, tail)); in parse()
5681 if let Ok((param, tail)) = TemplateParam::parse(ctx, subs, input) { in parse()
5683 return Ok((expr, tail)); in parse()
5686 if let Ok((param, tail)) = FunctionParam::parse(ctx, subs, input) { in parse()
5688 return Ok((expr, tail)); in parse()
5691 if let Ok((name, tail)) = UnresolvedName::parse(ctx, subs, input) { in parse()
5693 return Ok((expr, tail)); in parse()
5696 if let Ok((prim, tail)) = ExprPrimary::parse(ctx, subs, input) { in parse()
5698 return Ok((expr, tail)); in parse()
5705 let (expr, tail) = OperatorName::parse_from_expr(ctx, subs, input)?; in parse()
5706 return Ok((expr, tail)); in parse()
5720 Some((head, tail)) => match head.as_ref() { in parse()
5722 let (exprs, tail) = zero_or_more::<Expression>(ctx, subs, tail)?; in parse()
5723 let tail = consume(b"_", tail)?; in parse() localVariable
5724 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
5725 if let Ok(tail) = consume(b"E", tail) { in parse()
5731 Ok((expr, tail)) in parse()
5733 let (init, tail) = Initializer::parse(ctx, subs, tail)?; in parse()
5739 Ok((expr, tail)) in parse()
5743 let (exprs, tail) = zero_or_more::<Expression>(ctx, subs, tail)?; in parse()
5744 let tail = consume(b"_", tail)?; in parse() localVariable
5745 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
5746 if let Ok(tail) = consume(b"E", tail) { in parse()
5752 Ok((expr, tail)) in parse()
5754 let (init, tail) = Initializer::parse(ctx, subs, tail)?; in parse()
5760 Ok((expr, tail)) in parse()
5764 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5770 Ok((expr, tail)) in parse()
5773 let (expr, tail) = Expression::parse(ctx, subs, tail)?; in parse()
5779 Ok((expr, tail)) in parse()
6210 if let Ok(tail) = consume(b"gs", input) { in parse()
6211 if let Ok((name, tail)) = BaseUnresolvedName::parse(ctx, subs, tail) { in parse()
6212 return Ok((UnresolvedName::Global(name), tail)); in parse()
6215 let tail = consume(b"sr", tail)?; in parse() localVariable
6216 let (levels, tail) = one_or_more::<UnresolvedQualifierLevel>(ctx, subs, tail)?; in parse()
6217 let tail = consume(b"E", tail)?; in parse() localVariable
6218 let (name, tail) = BaseUnresolvedName::parse(ctx, subs, tail)?; in parse()
6219 return Ok((UnresolvedName::GlobalNested2(levels, name), tail)); in parse()
6222 if let Ok((name, tail)) = BaseUnresolvedName::parse(ctx, subs, input) { in parse()
6223 return Ok((UnresolvedName::Name(name), tail)); in parse()
6226 let tail = consume(b"sr", input)?; in parse() localVariable
6228 if tail.peek() == Some(b'N') { in parse()
6229 let tail = consume(b"N", tail).unwrap(); in parse() localVariable
6230 let (ty, tail) = UnresolvedTypeHandle::parse(ctx, subs, tail)?; in parse()
6231 let (levels, tail) = one_or_more::<UnresolvedQualifierLevel>(ctx, subs, tail)?; in parse()
6232 let tail = consume(b"E", tail)?; in parse() localVariable
6233 let (name, tail) = BaseUnresolvedName::parse(ctx, subs, tail)?; in parse()
6234 return Ok((UnresolvedName::Nested1(ty, levels, name), tail)); in parse()
6237 if let Ok((ty, tail)) = UnresolvedTypeHandle::parse(ctx, subs, tail) { in parse()
6238 let (name, tail) = BaseUnresolvedName::parse(ctx, subs, tail)?; in parse()
6239 return Ok((UnresolvedName::Nested1(ty, vec![], name), tail)); in parse()
6242 let (levels, tail) = one_or_more::<UnresolvedQualifierLevel>(ctx, subs, tail)?; in parse()
6243 let tail = consume(b"E", tail)?; in parse() localVariable
6244 let (name, tail) = BaseUnresolvedName::parse(ctx, subs, tail)?; in parse()
6245 Ok((UnresolvedName::Nested2(levels, name), tail)) in parse()
6324 if let Ok((param, tail)) = TemplateParam::parse(ctx, subs, input) { in parse()
6325 let (args, tail) = if let Ok((args, tail)) = TemplateArgs::parse(ctx, subs, tail) { in parse()
6326 (Some(args), tail) in parse()
6328 (None, tail) in parse()
6334 return Ok((handle, tail)); in parse()
6337 if let Ok((decltype, tail)) = Decltype::parse(ctx, subs, input) { in parse()
6342 return Ok((handle, tail)); in parse()
6345 let (sub, tail) = Substitution::parse(ctx, subs, input)?; in parse()
6348 Ok((UnresolvedTypeHandle::WellKnown(component), tail)) in parse()
6353 Ok((UnresolvedTypeHandle::BackReference(idx), tail)) in parse()
6402 let (id, tail) = SimpleId::parse(ctx, subs, input)?; in parse()
6403 Ok((UnresolvedQualifierLevel(id), tail)) in parse()
6439 let (name, tail) = SourceName::parse(ctx, subs, input)?; in parse()
6440 let (args, tail) = if let Ok((args, tail)) = TemplateArgs::parse(ctx, subs, tail) { in parse()
6441 (Some(args), tail) in parse()
6443 (None, tail) in parse()
6445 Ok((SimpleId(name, args), tail)) in parse()
6497 if let Ok((name, tail)) = SimpleId::parse(ctx, subs, input) { in parse()
6498 return Ok((BaseUnresolvedName::Name(name), tail)); in parse()
6501 if let Ok(tail) = consume(b"on", input) { in parse()
6502 let (opname, tail) = OperatorName::parse(ctx, subs, tail)?; in parse()
6503 let (args, tail) = if let Ok((args, tail)) = TemplateArgs::parse(ctx, subs, tail) { in parse()
6504 (Some(args), tail) in parse()
6506 (None, tail) in parse()
6508 return Ok((BaseUnresolvedName::Operator(opname, args), tail)); in parse()
6511 let tail = consume(b"dn", input)?; in parse() localVariable
6512 let (name, tail) = DestructorName::parse(ctx, subs, tail)?; in parse()
6513 Ok((BaseUnresolvedName::Destructor(name), tail)) in parse()
6565 if let Ok((ty, tail)) = UnresolvedTypeHandle::parse(ctx, subs, input) { in parse()
6566 return Ok((DestructorName::Unresolved(ty), tail)); in parse()
6569 let (name, tail) = SimpleId::parse(ctx, subs, input)?; in parse()
6570 Ok((DestructorName::Name(name), tail)) in parse()
6621 let tail = consume(b"L", input)?; in parse() localVariable
6623 if let Ok((ty, tail)) = TypeHandle::parse(ctx, subs, tail) { in parse()
6624 let start = tail.index(); in parse()
6625 let num_bytes_in_literal = tail.as_ref().iter().take_while(|&&c| c != b'E').count(); in parse()
6626 let tail = tail.range_from(num_bytes_in_literal..); in parse() localVariable
6627 let end = tail.index(); in parse()
6628 let tail = consume(b"E", tail)?; in parse() localVariable
6630 return Ok((expr, tail)); in parse()
6633 let (name, tail) = MangledName::parse(ctx, subs, tail)?; in parse()
6634 let tail = consume(b"E", tail)?; in parse() localVariable
6636 Ok((expr, tail)) in parse()
6751 let tail = consume(b"pi", input)?; in parse() localVariable
6752 let (exprs, tail) = zero_or_more::<Expression>(ctx, subs, tail)?; in parse()
6753 let tail = consume(b"E", tail)?; in parse() localVariable
6754 Ok((Initializer(exprs), tail)) in parse()
6808 let tail = consume(b"Z", input)?; in parse() localVariable
6809 let (encoding, tail) = Encoding::parse(ctx, subs, tail)?; in parse()
6810 let tail = consume(b"E", tail)?; in parse() localVariable
6812 if let Ok(tail) = consume(b"s", tail) { in parse()
6813 let (disc, tail) = if let Ok((disc, tail)) = Discriminator::parse(ctx, subs, tail) { in parse()
6814 (Some(disc), tail) in parse()
6816 (None, tail) in parse()
6818 return Ok((LocalName::Relative(Box::new(encoding), None, disc), tail)); in parse()
6821 if let Ok(tail) = consume(b"d", tail) { in parse()
6822 let (param, tail) = if let Ok((num, tail)) = Number::parse(ctx, subs, tail) { in parse()
6823 (Some(num as _), tail) in parse()
6825 (None, tail) in parse()
6827 let tail = consume(b"_", tail)?; in parse() localVariable
6828 let (name, tail) = Name::parse(ctx, subs, tail)?; in parse()
6831 tail, in parse()
6835 let (name, tail) = Name::parse(ctx, subs, tail)?; in parse()
6836 let (disc, tail) = if let Ok((disc, tail)) = Discriminator::parse(ctx, subs, tail) { in parse()
6837 (Some(disc), tail) in parse()
6839 (None, tail) in parse()
6844 tail, in parse()
6920 let tail = consume(b"_", input)?; in parse() localVariable
6922 if let Ok(tail) = consume(b"_", tail) { in parse()
6923 let (num, tail) = parse_number(10, false, tail)?; in parse()
6928 let tail = consume(b"_", tail)?; in parse() localVariable
6929 return Ok((Discriminator(num as _), tail)); in parse()
6932 match tail.try_split_at(1) { in parse()
6934 Some((head, tail)) => match head.as_ref()[0] { in parse()
6935 b'0' => Ok((Discriminator(0), tail)), in parse()
6936 b'1' => Ok((Discriminator(1), tail)), in parse()
6937 b'2' => Ok((Discriminator(2), tail)), in parse()
6938 b'3' => Ok((Discriminator(3), tail)), in parse()
6939 b'4' => Ok((Discriminator(4), tail)), in parse()
6940 b'5' => Ok((Discriminator(5), tail)), in parse()
6941 b'6' => Ok((Discriminator(6), tail)), in parse()
6942 b'7' => Ok((Discriminator(7), tail)), in parse()
6943 b'8' => Ok((Discriminator(8), tail)), in parse()
6944 b'9' => Ok((Discriminator(9), tail)), in parse()
6967 let tail = consume(b"Ul", input)?; in parse() localVariable
6968 let (sig, tail) = LambdaSig::parse(ctx, subs, tail)?; in parse()
6969 let tail = consume(b"E", tail)?; in parse() localVariable
6970 let (num, tail) = if let Ok((num, tail)) = parse_number(10, false, tail) { in parse()
6971 (Some(num as _), tail) in parse()
6973 (None, tail) in parse()
6975 let tail = consume(b"_", tail)?; in parse() localVariable
6976 Ok((ClosureTypeName(sig, num), tail)) in parse()
7066 let (types, tail) = if let Ok(tail) = consume(b"v", input) { in parse()
7067 (vec![], tail) in parse()
7071 Ok((LambdaSig(types), tail)) in parse()
7109 let (name, tail) = SourceName::parse(ctx, subs, input)?; in parse()
7110 let tail = consume(b"M", tail)?; in parse() localVariable
7111 Ok((DataMemberPrefix(name), tail)) in parse()
7183 if let Ok((well_known, tail)) = WellKnownComponent::parse(ctx, subs, input) { in parse()
7184 return Ok((Substitution::WellKnown(well_known), tail)); in parse()
7187 let tail = consume(b"S", input)?; in parse() localVariable
7188 let (idx, tail) = if let Ok((idx, tail)) = SeqId::parse(ctx, subs, tail) { in parse()
7189 (idx.0 + 1, tail) in parse()
7191 (0, tail) in parse()
7198 let tail = consume(b"_", tail)?; in parse() localVariable
7200 Ok((Substitution::BackReference(idx), tail)) in parse()
7374 let (head, tail) = match input.try_split_at(2) { in parse()
7376 Some((head, tail)) => (head, tail), in parse()
7381 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
7382 Ok((SpecialName::VirtualTable(ty), tail)) in parse()
7385 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
7386 Ok((SpecialName::Vtt(ty), tail)) in parse()
7389 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
7390 Ok((SpecialName::Typeinfo(ty), tail)) in parse()
7393 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
7394 Ok((SpecialName::TypeinfoName(ty), tail)) in parse()
7397 let (first, tail) = CallOffset::parse(ctx, subs, tail)?; in parse()
7398 let (second, tail) = CallOffset::parse(ctx, subs, tail)?; in parse()
7399 let (base, tail) = Encoding::parse(ctx, subs, tail)?; in parse()
7402 tail, in parse()
7408 let tail = consume(b"T", input).unwrap(); in parse() localVariable
7409 let (offset, tail) = CallOffset::parse(ctx, subs, tail)?; in parse()
7410 let (base, tail) = Encoding::parse(ctx, subs, tail)?; in parse()
7413 tail, in parse()
7417 let (ty1, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
7418 let (n, tail) = parse_number(10, false, tail)?; in parse()
7419 let tail = consume(b"_", tail)?; in parse() localVariable
7420 let (ty2, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
7421 Ok((SpecialName::ConstructionVtable(ty1, n as usize, ty2), tail)) in parse()
7424 let (ty, tail) = TypeHandle::parse(ctx, subs, tail)?; in parse()
7425 Ok((SpecialName::TypeinfoFunction(ty), tail)) in parse()
7428 let (name, tail) = Name::parse(ctx, subs, tail)?; in parse()
7429 Ok((SpecialName::TlsInit(name), tail)) in parse()
7432 let (name, tail) = Name::parse(ctx, subs, tail)?; in parse()
7433 Ok((SpecialName::TlsWrapper(name), tail)) in parse()
7436 let (name, tail) = Name::parse(ctx, subs, tail)?; in parse()
7437 Ok((SpecialName::Guard(name), tail)) in parse()
7440 let (name, tail) = Name::parse(ctx, subs, tail)?; in parse()
7441 let (idx, tail) = if let Ok(tail) = consume(b"_", tail) { in parse()
7442 (0, tail) in parse()
7444 let (idx, tail) = SeqId::parse(ctx, subs, tail)?; in parse()
7445 let tail = consume(b"_", tail)?; in parse() localVariable
7446 (idx.0 + 1, tail) in parse()
7448 Ok((SpecialName::GuardTemporary(name, idx), tail)) in parse()
7451 let (resource_name_len, tail) = parse_number(10, false, tail)?; in parse()
7456 let (head, tail) = match tail.try_split_at(resource_name_len as _) { in parse()
7457 Some((head, tail)) => (head, tail), in parse()
7468 Ok((SpecialName::JavaResource(resource_names), tail)) in parse()
7471 match tail.next_or(error::Error::UnexpectedEnd)? { in parse()
7472 (b'n', tail) => { in parse()
7473 let (base, tail) = Encoding::parse(ctx, subs, tail)?; in parse()
7474 Ok((SpecialName::NonTransactionClone(Box::new(base)), tail)) in parse()
7478 (b't', tail) | (_, tail) => { in parse()
7479 let (base, tail) = Encoding::parse(ctx, subs, tail)?; in parse()
7480 Ok((SpecialName::TransactionClone(Box::new(base)), tail)) in parse()
7627 let tail = input.range_from(end..); in parse() localVariable
7631 end: tail.index(), in parse()
7634 Ok((resource_name, tail)) in parse()
7680 Some((head, tail)) if head == expected => Ok(tail), in consume()
7694 let (first, mut tail) = P::parse(ctx, subs, input)?; in one_or_more()
7697 if let Ok((parsed, tail_tail)) = P::parse(ctx, subs, tail) { in one_or_more()
7699 tail = tail_tail; in one_or_more()
7701 return Ok((results, tail)); in one_or_more()
7714 let mut tail = input; in zero_or_more() localVariable
7717 if let Ok((parsed, tail_tail)) = P::parse(ctx, subs, tail) { in zero_or_more()
7719 tail = tail_tail; in zero_or_more()
7721 return Ok((results, tail)); in zero_or_more()
7756 let (head, tail) = input.split_at(num_numeric); in parse_number()
7776 Ok((number, tail)) in parse_number()
7837 Ok((value, tail)) => { in assert_parse_ok()
7847 if tail != expected_tail { in assert_parse_ok()
7852 tail, in assert_parse_ok()
7908 Ok((value, tail)) => { in assert_parse_err()
7918 tail, in assert_parse_err()