method class_expr =
fun f ce ->
let () = o#node f ce Ast.loc_of_class_expr
in
match ce with
| Ast.CeCon (_, Ast.ViNil, i, (Ast.TyNil _)) ->
pp f "@[<2>%a@]" o#ident i
| Ast.CeCon (_, Ast.ViNil, i, t) ->
pp f "@[<2>%a@ @[<1>[%a]@]@]" o#ident i
o#class_params t
| Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)),
(Ast.TyNil _)) -> pp f "@[<2>virtual@ %a@]" o#var i
| Ast.CeCon (_, Ast.ViVirtual, (Ast.IdLid (_, i)), t)
->
pp f "@[<2>virtual@ %a@ @[<1>[%a]@]@]" o#var i
o#ctyp t
| ce -> super#class_expr f ce