fn parse_opt_abi(&mut self) -> PResult<'a, Option<abi::Abi>> {
        match self.token {
            token::Literal(token::Str_(s), suf) | token::Literal(token::StrRaw(s, _), suf) => {
                let sp = self.span;
                self.expect_no_suffix(sp, "ABI spec", suf);
                self.bump();
                match abi::lookup(&s.as_str()) {
                    Some(abi) => Ok(Some(abi)),
                    None => {
                        let last_span = self.last_span;
                        self.span_err(
                            last_span,
                            &format!("invalid ABI: expected one of [{}], \
                                     found `{}`",
                                    abi::all_names().join(", "),
                                    s));
                        Ok(None)
                    }
                }
            }

            _ => Ok(None),
        }
    }
/// Parses a string as an ABI spec on an extern type or module. Consumes
/// the `extern` keyword, if one is found.
Parses a string as an ABI spec on an extern type or module. Consumes
the `extern` keyword, if one is found.
Parses a string as an ABI spec on an extern type or module . Consumes the ` extern ` keyword if one is found .
fn parse_opt_abi(&mut self) -> PResult<'a, Option<abi::Abi>> {
        match self.token {
            token::Literal(token::Str_(s), suf) | token::Literal(token::StrRaw(s, _), suf) => {
                let sp = self.span;
                self.expect_no_suffix(sp, "ABI spec", suf);
                self.bump();
                match abi::lookup(&s.as_str()) {
                    Some(abi) => Ok(Some(abi)),
                    None => {
                        let last_span = self.last_span;
                        self.span_err(
                            last_span,
                            &format!("invalid ABI: expected one of [{}], \
                                     found `{}`",
                                    abi::all_names().join(", "),
                                    s));
                        Ok(None)
                    }
                }
            }
            _ => Ok(None),
        }
    }
fn parse_opt_abi ( & mut self ) -> PResult < ' a , Option < abi :: Abi > > { match self . token { token :: Literal ( token :: Str_ ( s ) , suf ) | token :: Literal ( token :: StrRaw ( s , _ ) , suf ) => { let sp = self . span ; self . expect_no_suffix ( sp , " " , suf ) ; self . bump ( ) ; match abi :: lookup ( & s . as_str ( ) ) { Some ( abi ) => Ok ( Some ( abi ) ) , None => { let last_span = self . last_span ; self . span_err ( last_span , & format ! ( " \
 " abi all_names ( ) join ( " " ) s ) ) ; Ok ( None ) } } } _ => Ok ( None ) , } }
Parses a string as an ABI spec on an extern type or module.
Parses a string as an ABI spec on an extern type or module .
&mut self
&mut self