@@ -8,6 +8,23 @@ use difference::assert_diff;
88
99use gluon:: { RootedThread , ThreadExt , VmBuilder } ;
1010
11+ macro_rules! test_format {
12+ ( $name: ident, $initial: expr) => {
13+ test_format! { $name, $initial, $initial }
14+ } ;
15+ ( $name: ident, $initial: expr, $formatted: expr) => {
16+ #[ test]
17+ fn $name( ) {
18+ let initial = $initial;
19+ let expr = $formatted;
20+
21+ let once = format_expr( initial) . unwrap( ) ;
22+ assert_diff!( & once, expr, "\n " , 0 ) ;
23+ assert_diff!( & format_expr( & once) . unwrap( ) , expr, "\n " , 0 ) ;
24+ }
25+ } ;
26+ }
27+
1128fn new_vm ( ) -> RootedThread {
1229 VmBuilder :: new ( )
1330 . import_paths ( Some ( vec ! [ "." . into( ) , ".." . into( ) ] ) )
@@ -781,3 +798,34 @@ type OpenVariant r a = .. r
781798"# ;
782799 assert_diff ! ( & format_expr( expr) . unwrap( ) , expr, "\n " , 0 ) ;
783800}
801+
802+ test_format ! {
803+ issue_793_1,
804+ r#"
805+ let gectvbzppia : alrkvbjaklbvapouhvgtbvvnaipryrbipajlkm
806+ vhieurabrlvikbnvliaejnbae
807+ vhieurabrlvikbnvliaejnbaeoribfhknjeanhbtbaejnbaetiekjnajkrhblbrfvbrkkajbevels
808+ vhieurabrlvikbnvliaejnbaeoribfhknjeanhbtbaejnb
809+ vhieurabrlvikbnvliaejn
810+ =
811+ x
812+ ()
813+ "#
814+ }
815+
816+ test_format ! {
817+ issue_793_2,
818+ r#"
819+ let assert_success : [Show e] -> Eff [| error : Error e, writer : Test | r |] a -> Eff [| writer : Test | r |] ()
820+ = run_error >> flat_map assert_ok
821+ ()
822+ "# ,
823+ r#"
824+ let assert_success : [Show e]
825+ -> Eff [| error : Error e, writer : Test | r |] a
826+ -> Eff [| writer : Test | r |] ()
827+ =
828+ run_error >> flat_map assert_ok
829+ ()
830+ "#
831+ }
0 commit comments