summaryrefslogtreecommitdiff
path: root/src/Print.ml
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/Print.ml77
1 files changed, 77 insertions, 0 deletions
diff --git a/src/Print.ml b/src/Print.ml
index 9cdde188..4b8ad30a 100644
--- a/src/Print.ml
+++ b/src/Print.ml
@@ -55,6 +55,21 @@ module Types = struct
| T.U64 -> "u64"
| T.U128 -> "u128"
+ let ty_variant_name (ty : 'r T.ty) : string =
+ match ty with
+ | T.Adt (_, _, _) -> "Adt"
+ | T.TypeVar _ -> "TypeVar"
+ | T.Bool -> "Bool"
+ | T.Char -> "Char"
+ | T.Never -> "Never"
+ | T.Integer _ -> "Integer"
+ | T.Str -> "Str"
+ | T.Array _ -> "Array"
+ | T.Slice _ -> "Slice"
+ | T.Ref (_, _, _) -> "Ref"
+ | T.Tuple _ -> "Tuple"
+ | T.Assumed (_, _, _) -> "Assumed"
+
let rec ty_to_string (fmt : 'r type_formatter) (ty : 'r T.ty) : string =
match ty with
| T.Adt (id, regions, tys) ->
@@ -569,6 +584,12 @@ module CfimAst = struct
fun_def_id_to_string;
}
+ let projection_elem_variant_name (pe : E.projection_elem) : string =
+ match pe with
+ | E.Deref -> "Deref"
+ | E.DerefBox -> "DerefBox"
+ | E.Field (_, _) -> "Field"
+
let rec projection_to_string (fmt : ast_formatter) (inside : string)
(p : E.projection) : string =
match p with
@@ -917,3 +938,59 @@ module EvalCtxCfimAst = struct
let fmt = PA.eval_ctx_to_ast_formatter ctx in
PA.expression_to_string fmt indent indent_incr e
end
+
+(*
+(** Debugging facilities, for when there is missing context *)
+module Debug = struct
+ let erased_region_to_string = PT.erased_region_to_string
+
+ let region_var_id_to_string (id : T.RegionVarId.id) =
+ "@" ^ T.RegionVarId.to_string id
+
+ let type_var_id_to_string (id : T.TypeVarId.id) =
+ "@" ^ T.TypeVarId.to_string id
+
+ let type_def_id_to_string (id : T.TypeDefId.id) =
+ "@" ^ T.TypeDefId.to_string id
+
+ let adt_variant_to_string (_def_id : T.TypeDefId.id)
+ (variant_id : T.VariantId.id) : string =
+ T.VariantId.to_string variant_id
+
+ let var_id_to_string (id : V.VarId.id) = "@" ^ V.VarId.to_string id
+
+ let adt_field_names (_def_id : T.TypeDefId.id)
+ (opt_variant_idt : T.VariantId.id option) : string list option =
+ None
+
+ let dummy_etype_fmt : PT.etype_formatter =
+ let r_to_string = erased_region_to_string in
+ { r_to_string; type_var_id_to_string; type_def_id_to_string }
+
+ let dummy_rtype_fmt : PT.rtype_formatter =
+ let r_to_string r = PT.region_to_string region_var_id_to_string r in
+ { r_to_string; type_var_id_to_string; type_def_id_to_string }
+
+ let dummy_value_fmt : PV.value_formatter =
+ let r_to_string = region_var_id_to_string in
+ {
+ r_to_string;
+ type_var_id_to_string;
+ type_def_id_to_string;
+ adt_variant_to_string;
+ var_id_to_string;
+ adt_field_names;
+ }
+
+ let field_proj_kind_to_string (pe : E.projection_elem) : string =
+ match pe with
+ | E.Deref -> "Deref"
+ | E.DerefBox -> "DerefBox"
+ | Field
+
+ let projection_elem_to_string (pe : E.projection_elem) : string =
+ match pe with
+ | E.Deref -> "Deref"
+ | E.DerefBox -> "DerefBox"
+ | Field
+end*)