File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change @@ -67,3 +67,48 @@ let%expect_test "conditional" =
6767 }
6868 // end
6969 | }]
70+
71+ let % expect_test " conditional" =
72+ let program =
73+ compile_and_parse
74+ {|
75+ type rip_relative_kind =
76+ | Explicitly_rip_relative
77+ | Implicitly_rip_relative
78+ | Not_rip_relative
79+
80+ (* * val rip_relative_kind_beq :
81+ rip_relative_kind -> rip_relative_kind -> bool **)
82+
83+ let rip_relative_kind_beq x y =
84+ match x with
85+ | Explicitly_rip_relative ->
86+ (match y with
87+ | Explicitly_rip_relative -> true
88+ | Implicitly_rip_relative -> false
89+ | Not_rip_relative -> false )
90+ | Implicitly_rip_relative ->
91+ (match y with
92+ | Explicitly_rip_relative -> false
93+ | Implicitly_rip_relative -> true
94+ | Not_rip_relative -> false )
95+ | Not_rip_relative ->
96+ (match y with
97+ | Explicitly_rip_relative -> false
98+ | Implicitly_rip_relative -> false
99+ | Not_rip_relative -> true )
100+ | }
101+ in
102+ print_fun_decl program (Some " rip_relative_kind_beq" );
103+ [% expect {|
104+ function rip_relative_kind_beq(x, y){
105+ switch(x){
106+ case 0 :
107+ switch(y){case 0 : return 1 ;case 1 : return 0 ;default : return 0 ; }
108+ case 1 :
109+ switch(y){case 0 : return 0 ;case 1 : return 1 ;default : return 0 ; }
110+ default : switch (y ){case 0 : return 0 ;case 1 : return 0 ;default : return 1 ; }
111+ }
112+ }
113+ // end
114+ | }]
You can’t perform that action at this time.
0 commit comments