ast: fix formatting fn variadic of reference param (#11130)
							parent
							
								
									2ae77c1998
								
							
						
					
					
						commit
						aceaaa681d
					
				|  | @ -34,7 +34,6 @@ const ( | |||
| 		'vlib/builtin/int.v' /* TODO byteptr: vfmt converts `pub fn (nn byteptr) str() string {` to `nn &byte` and that conflicts with `nn byte` */, | ||||
| 		'vlib/builtin/string_charptr_byteptr_helpers.v' /* TODO byteptr: a temporary shim to ease the byteptr=>&byte transition */, | ||||
| 		'vlib/v/tests/interop_test.v', /* bad comment formatting */ | ||||
| 		'vlib/v/tests/vargs_reference_param_test.v', /* variadic reference params */ | ||||
| 		'vlib/v/gen/js/tests/js.v', /* local `hello` fn, gets replaced with module `hello` aliased as `hl` */ | ||||
| 	] | ||||
| 	vfmt_verify_list                = [ | ||||
|  |  | |||
|  | @ -1064,7 +1064,7 @@ pub fn (t &Table) type_to_str_using_aliases(typ Type, import_aliases map[string] | |||
| 		nr_muls-- | ||||
| 		res = 'shared ' + res | ||||
| 	} | ||||
| 	if nr_muls > 0 { | ||||
| 	if nr_muls > 0 && !typ.has_flag(.variadic) { | ||||
| 		res = strings.repeat(`&`, nr_muls) + res | ||||
| 	} | ||||
| 	if typ.has_flag(.optional) { | ||||
|  |  | |||
|  | @ -0,0 +1,27 @@ | |||
| [heap] | ||||
| struct Foo { | ||||
| 	name string | ||||
| } | ||||
| 
 | ||||
| fn agg_stuff(stuffs ...&Foo) []&Foo { | ||||
| 	stuffs2 := stuffs.clone() | ||||
| 	return stuffs2 | ||||
| } | ||||
| 
 | ||||
| fn arr_stuff(stuffs []&Foo) []&Foo { | ||||
| 	stuffs2 := stuffs.clone() | ||||
| 	return stuffs2 | ||||
| } | ||||
| 
 | ||||
| fn main() { | ||||
| 	foo1 := &Foo{'foo'} | ||||
| 	foo2 := &Foo{'bar'} | ||||
| 
 | ||||
| 	foo11 := agg_stuff(foo1, foo2) | ||||
| 	println(foo11) | ||||
| 
 | ||||
| 	foo22 := arr_stuff([foo1, foo2]) | ||||
| 	println(foo22) | ||||
| 
 | ||||
| 	assert '$foo11' == '$foo22' | ||||
| } | ||||
		Loading…
	
		Reference in New Issue