pub fn parse_ret_ty(&mut self) -> (RetStyle, P<Ty>) {
        return if self.eat(&token::RARROW) {
            let lo = self.span.lo;
            if self.eat(&token::NOT) {
                (
                    NoReturn,
                    P(Ty {
                        id: ast::DUMMY_NODE_ID,
                        node: TyBot,
                        span: mk_sp(lo, self.last_span.hi)
                    })
                )
            } else {
                (Return, self.parse_ty(false))
            }
        } else {
            let pos = self.span.lo;
            (
                Return,
                P(Ty {
                    id: ast::DUMMY_NODE_ID,
                    node: TyNil,
                    span: mk_sp(pos, pos),
                })
            )
        }
    }
// parse optional return type [ -> TY ] in function decl
parse optional return type [ -> TY ] in function decl
parse optional return type [ - > TY ] in function decl
pub fn parse_ret_ty(&mut self) -> (RetStyle, P<Ty>) {
        return if self.eat(&token::RARROW) {
            let lo = self.span.lo;
            if self.eat(&token::NOT) {
                (
                    NoReturn,
                    P(Ty {
                        id: ast::DUMMY_NODE_ID,
                        node: TyBot,
                        span: mk_sp(lo, self.last_span.hi)
                    })
                )
            } else {
                (Return, self.parse_ty(false))
            }
        } else {
            let pos = self.span.lo;
            (
                Return,
                P(Ty {
                    id: ast::DUMMY_NODE_ID,
                    node: TyNil,
                    span: mk_sp(pos, pos),
                })
            )
        }
    }
pub fn parse_ret_ty ( & mut self ) -> ( RetStyle , P < Ty > ) { return if self . eat ( & token :: RARROW ) { let lo = self . span . lo ; if self . eat ( & token :: NOT ) { ( NoReturn , P ( Ty { id : ast :: DUMMY_NODE_ID , node : TyBot , span : mk_sp ( lo , self . last_span . hi ) } ) ) } else { ( Return , self . parse_ty ( false ) ) } } else { let pos = self . span . lo ; ( Return , P ( Ty { id : ast :: DUMMY_NODE_ID , node : TyNil , span : mk_sp ( pos , pos ) , } ) ) } }
parse optional return type [ -> TY ] in function decl
parse optional return type [ - > TY ] in function decl
&mut self
&mut self