Lines Matching refs:input
166 fn parse(input: ParseStream) -> Result<Self> {
167 let attrs = input.call(Attribute::parse_outer)?;
168 let _visibility: Visibility = input.parse()?;
169 let ident: Ident = input.parse()?;
170 let fields = if input.peek(token::Brace) {
171 Fields::Named(input.parse()?)
172 } else if input.peek(token::Paren) {
173 Fields::Unnamed(input.parse()?)
177 let discriminant = if input.peek(Token![=]) {
178 let eq_token: Token![=] = input.parse()?;
180 let discriminant: Expr = input.parse()?;
183 let begin = input.fork();
184 let ahead = input.fork();
187 input.advance_to(&ahead);
188 } else if scan_lenient_discriminant(input).is_ok() {
189 discriminant = Ok(Expr::Verbatim(verbatim::between(&begin, input)));
207 pub(crate) fn scan_lenient_discriminant(input: ParseStream) -> Result<()> {
211 Result::unwrap(input.step(|cursor| match cursor.group(delimiter) {
219 input.parse::<Option<Token![$token]>>().unwrap().is_some()
228 input.parse::<Option<Token![mut]>>()?;
231 } else if input.parse::<Option<Lit>>()?.is_some()
240 || (consume![!] || input.parse::<Option<Lit>>()?.is_some())
244 path::parsing::qpath(input, true)?;
247 } else if input.parse::<Option<Lifetime>>()?.is_some() && !consume![:] {
249 } else if input.parse::<UnOp>().is_err() {
250 path::parsing::qpath(input, true)?;
251 initial = consume![!] || depth == 0 && input.peek(token::Brace);
253 } else if input.is_empty() || input.peek(Token![,]) {
261 } else if input.parse::<BinOp>().is_ok() || (consume![..] | consume![=]) {
264 if input.parse::<Option<LitFloat>>()?.is_none()
265 && (input.parse::<Member>()?.is_named() && consume![::])
267 AngleBracketedGenericArguments::do_parse(None, input)?;
270 input.parse::<Type>()?;
276 Err(input.error("unsupported expression"))
281 fn parse(input: ParseStream) -> Result<Self> {
284 brace_token: braced!(content in input),
292 fn parse(input: ParseStream) -> Result<Self> {
295 paren_token: parenthesized!(content in input),
304 pub fn parse_named(input: ParseStream) -> Result<Self> {
305 let attrs = input.call(Attribute::parse_outer)?;
306 let vis: Visibility = input.parse()?;
308 let unnamed_field = cfg!(feature = "full") && input.peek(Token![_]);
310 input.call(Ident::parse_any)
312 input.parse()
315 let colon_token: Token![:] = input.parse()?;
318 && (input.peek(Token![struct])
319 || input.peek(Token![union]) && input.peek2(token::Brace))
321 let begin = input.fork();
322 input.call(Ident::parse_any)?;
323 input.parse::<FieldsNamed>()?;
324 Type::Verbatim(verbatim::between(&begin, input))
326 input.parse()?
341 pub fn parse_unnamed(input: ParseStream) -> Result<Self> {
343 attrs: input.call(Attribute::parse_outer)?,
344 vis: input.parse()?,
348 ty: input.parse()?,