{"ast_node_type":"function","tokens":[{"end":78,"kind":"keyword","start":0,"text":"fn"}]}
    fn check_expr(&mut self, cx: &LateContext<'tcx>, expr: &'tcx Expr<'tcx>) {
impl<'tcx> LateLintPass<'tcx> for InvalidReferenceCasting {
        if let Some((e, pat)) = borrow_or_assign(cx, expr) {