diff --git a/compiler/lib/varPrinter.ml b/compiler/lib/varPrinter.ml index 5d5824d045..3497d127d9 100644 --- a/compiler/lib/varPrinter.ml +++ b/compiler/lib/varPrinter.ml @@ -99,7 +99,14 @@ let name t v nm_orig = else pending := true done; let str = Buffer.contents buf in - if String.length str > 0 then name_raw t v str) + let str = + match str, nm_orig with + | "", ">>=" -> "symbol_bind" + | "", ">>|" -> "symbol_map" + | "", _ -> "symbol" + | str, _ -> str + in + name_raw t v str) let get_name t v = try Some (Hashtbl.find t.names v) with Not_found -> None diff --git a/compiler/tests/variable_declaration_output.ml b/compiler/tests/variable_declaration_output.ml index 26309a92bc..2549f0e459 100644 --- a/compiler/tests/variable_declaration_output.ml +++ b/compiler/tests/variable_declaration_output.ml @@ -37,15 +37,20 @@ let%expect_test _ = let ax = [|1;2;3;4|] ;; let bx = [|1.0;2.0;3.0;4.0|] ;; let cx = [|0./.0.;-0./.0.;1./.0.;-1./.0.;0.;-0.|] ;; + let (>>=) a b = a * b + let (>>|) a b = a + b + let (>>?=) a b = a / b + let symbol_op = (>>=), (>>|), (>>?=);; |} in print_var_decl program "ex"; print_var_decl program "ax"; print_var_decl program "bx"; print_var_decl program "cx"; - [%expect - {| + print_var_decl program "symbol_op"; + [%expect{| var ex = [0,5,runtime.caml_new_string("hello")]; var ax = [0,1,2,3,4]; var bx = [254,1.,2.,3.,4.]; - var cx = [254,NaN,NaN,Infinity,- Infinity,0.,- 0.]; |}] + var cx = [254,NaN,NaN,Infinity,- Infinity,0.,- 0.]; + var symbol_op = [0,symbol_bind,symbol_map,symbol]; |}]