{"ast_node_type":"function","tokens":[{"end":98,"kind":"keyword","start":0,"text":"fn"}]}
    fn collect_while_loop(&mut self, syntax_ptr: AstPtr<ast::Expr>, e: ast::WhileExpr) -> ExprId {
    /// to preserve drop semantics. We should probably do the same in future.
        let label = e.label().map(|label| {