fn error_outer_attrs(&self, attrs: &[Attribute]) {
        if !attrs.is_empty() {
            if self.prev_token_kind == PrevTokenKind::DocComment {
                self.span_fatal_err(self.prev_span, Error::UselessDocComment).emit();
            } else if attrs.iter().any(|a| a.style == AttrStyle::Outer) {
                self.span_err(self.token.span, "expected statement after outer attribute");
            }
        }
    }
/// Error on outer attributes in this context.
/// Also error if the previous token was a doc comment.
Error on outer attributes in this context.
Also error if the previous token was a doc comment.
Error on outer attributes in this context . Also error if the previous token was a doc comment .
fn error_outer_attrs(&self, attrs: &[Attribute]) {
        if !attrs.is_empty() {
            if self.prev_token_kind == PrevTokenKind::DocComment {
                self.span_fatal_err(self.prev_span, Error::UselessDocComment).emit();
            } else if attrs.iter().any(|a| a.style == AttrStyle::Outer) {
                self.span_err(self.token.span, "expected statement after outer attribute");
            }
        }
    }
fn error_outer_attrs ( & self , attrs : & [ Attribute ] ) { if ! attrs . is_empty ( ) { if self . prev_token_kind == PrevTokenKind :: DocComment { self . span_fatal_err ( self . prev_span , Error :: UselessDocComment ) . emit ( ) ; } else if attrs . iter ( ) . any ( | a | a . style == AttrStyle :: Outer ) { self . span_err ( self . token . span , " " ) ; } } }
Error on outer attributes in this context.
Error on outer attributes in this context .
&self
attrs
&[Attribute]