@@ -102,6 +102,7 @@ fn show_record_multifield() {
102102 ) ;
103103 assert_eq_display ! ( format!( "{}" , typ) , "{ Test a = a -> String, x : Int }" ) ;
104104}
105+
105106#[ test]
106107fn show_record_multiline ( ) {
107108 let data = |s, a| ArcType :: from ( type_con ( s, a) ) ;
@@ -140,6 +141,44 @@ fn show_record_multiline() {
140141 ) ;
141142}
142143
144+ #[ test]
145+ fn show_record_long_type ( ) {
146+ let data = |s, a| ArcType :: from ( type_con ( s, a) ) ;
147+ let fun = Type :: function (
148+ vec ! [
149+ data(
150+ "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa" ,
151+ vec![ ] ,
152+ ) ,
153+ data( "a" , vec![ ] ) ,
154+ data( "a" , vec![ ] ) ,
155+ ] ,
156+ Type :: string ( ) ,
157+ ) ;
158+ let test = data ( "Test" , vec ! [ data( "a" , vec![ ] ) ] ) ;
159+ let record = Type :: record (
160+ vec ! [ Field :: new(
161+ "Test" ,
162+ Alias :: from( AliasData :: new(
163+ "Test" ,
164+ vec![ Generic :: new( "a" , Kind :: typ( ) ) ] ,
165+ fun. clone( ) ,
166+ ) ) ,
167+ ) ] ,
168+ vec ! [ ] ,
169+ ) ;
170+
171+ assert_eq_display ! (
172+ format!( "{}" , record) ,
173+ r#"{
174+ Test a = aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
175+ -> a
176+ -> a
177+ -> String
178+ }"#
179+ ) ;
180+ }
181+
143182#[ test]
144183fn show_record_filtered ( ) {
145184 let data = |s, a| ArcType :: from ( type_con ( s, a) ) ;
@@ -262,10 +301,7 @@ fn show_record_multi_line_nested() {
262301#[ test]
263302fn show_variant ( ) {
264303 let typ: ArcType < & str > = Type :: variant ( vec ! [
265- Field :: new(
266- "A" ,
267- Type :: function( vec![ Type :: int( ) ] , Type :: opaque( ) ) ,
268- ) ,
304+ Field :: new( "A" , Type :: function( vec![ Type :: int( ) ] , Type :: opaque( ) ) ) ,
269305 Field :: new( "B" , Type :: opaque( ) ) ,
270306 ] ) ;
271307 assert_eq_display ! ( format!( "{}" , typ) , "| A Int\n | B" ) ;
0 commit comments