{"ast_node_type":"variable","tokens":[{"end":54,"kind":"keyword","start":0,"text":"while"}]}
        while let ty::Pat(base, _) = *self_ty.kind() {
        // FIXME(pattern_types): Figure out the exact coherence rules we want here.
            self_ty = base;