cgen: fix empty struct initilization (#10651)
							parent
							
								
									6454f998c4
								
							
						
					
					
						commit
						5a4a1997e7
					
				|  | @ -694,7 +694,7 @@ fn (mut g Gen) register_chan_pop_optional_call(opt_el_type string, styp string) | |||
| static inline $opt_el_type __Option_${styp}_popval($styp ch) { | ||||
| 	$opt_el_type _tmp = {0}; | ||||
| 	if (sync__Channel_try_pop_priv(ch, _tmp.data, false)) { | ||||
| 		return ($opt_el_type){ .state = 2, .err = v_error(_SLIT("channel closed")), .data = {0} }; | ||||
| 		return ($opt_el_type){ .state = 2, .err = v_error(_SLIT("channel closed")), .data = {EMPTY_STRUCT_INITIALIZATION} }; | ||||
| 	} | ||||
| 	return _tmp; | ||||
| }') | ||||
|  | @ -708,7 +708,7 @@ fn (mut g Gen) register_chan_push_optional_call(el_type string, styp string) { | |||
| 		g.channel_definitions.writeln(' | ||||
| static inline Option_void __Option_${styp}_pushval($styp ch, $el_type e) { | ||||
| 	if (sync__Channel_try_push_priv(ch, &e, false)) { | ||||
| 		return (Option_void){ .state = 2, .err = v_error(_SLIT("channel closed")), .data = {0} }; | ||||
| 		return (Option_void){ .state = 2, .err = v_error(_SLIT("channel closed")), .data = {EMPTY_STRUCT_INITIALIZATION} }; | ||||
| 	} | ||||
| 	return (Option_void){0}; | ||||
| }') | ||||
|  | @ -4482,7 +4482,7 @@ fn (mut g Gen) gen_optional_error(target_type ast.Type, expr ast.Expr) { | |||
| 	styp := g.typ(target_type) | ||||
| 	g.write('($styp){ .state=2, .err=') | ||||
| 	g.expr(expr) | ||||
| 	g.write(', .data={0} }') | ||||
| 	g.write(', .data={EMPTY_STRUCT_INITIALIZATION} }') | ||||
| } | ||||
| 
 | ||||
| fn (mut g Gen) return_stmt(node ast.Return) { | ||||
|  | @ -5054,7 +5054,7 @@ fn (mut g Gen) struct_init(struct_init ast.StructInit) { | |||
| 			} | ||||
| 			if field.typ.has_flag(.optional) { | ||||
| 				field_name := c_name(field.name) | ||||
| 				g.write('.$field_name = {0},') | ||||
| 				g.write('.$field_name = {EMPTY_STRUCT_INITIALIZATION},') | ||||
| 				initialized = true | ||||
| 				continue | ||||
| 			} | ||||
|  |  | |||
|  | @ -1,6 +1,4 @@ | |||
| struct Response { | ||||
| 	ret int | ||||
| } | ||||
| struct Response {} | ||||
| 
 | ||||
| pub struct Route { | ||||
| 	handler     fn (mut App) Response | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue