Revert "cgen: fix error for struct with reference alias fields (#13374)"
This reverts commit 4d485ae687.
			
			
				pull/13380/head
			
			
		
							parent
							
								
									4d485ae687
								
							
						
					
					
						commit
						5faabe7464
					
				|  | @ -916,8 +916,7 @@ fn (mut g Gen) gen_str_for_struct(info ast.Struct, styp string, str_fn_name stri | ||||||
| 			funcprefix += 'isnil(it.${c_name(field.name)})' | 			funcprefix += 'isnil(it.${c_name(field.name)})' | ||||||
| 			funcprefix += ' ? _SLIT("nil") : ' | 			funcprefix += ' ? _SLIT("nil") : ' | ||||||
| 			// struct, floats and ints have a special case through the _str function
 | 			// struct, floats and ints have a special case through the _str function
 | ||||||
| 			if sym.kind !in [.struct_, .alias] && !field.typ.is_int_valptr() | 			if sym.kind != .struct_ && !field.typ.is_int_valptr() && !field.typ.is_float_valptr() { | ||||||
| 				&& !field.typ.is_float_valptr() { |  | ||||||
| 				funcprefix += '*' | 				funcprefix += '*' | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  | @ -5519,9 +5519,6 @@ fn (mut g Gen) struct_init(node ast.StructInit) { | ||||||
| 							|| sfield.typ.is_pointer()) && !sfield.typ.is_number() { | 							|| sfield.typ.is_pointer()) && !sfield.typ.is_number() { | ||||||
| 							g.write('/* autoref */&') | 							g.write('/* autoref */&') | ||||||
| 						} | 						} | ||||||
| 						if sfield.typ.is_ptr() && field_type_sym.kind == .alias { |  | ||||||
| 							g.write('&') |  | ||||||
| 						} |  | ||||||
| 						g.expr_with_cast(sfield.expr, sfield.typ, sfield.expected_type) | 						g.expr_with_cast(sfield.expr, sfield.typ, sfield.expected_type) | ||||||
| 					} | 					} | ||||||
| 				} | 				} | ||||||
|  |  | ||||||
|  | @ -85,9 +85,6 @@ fn (mut g Gen) gen_expr_to_string(expr ast.Expr, etype ast.Type) { | ||||||
| 		g.expr(expr) | 		g.expr(expr) | ||||||
| 		g.write(')') | 		g.write(')') | ||||||
| 	} else if typ == ast.string_type { | 	} else if typ == ast.string_type { | ||||||
| 		if etype.is_ptr() { |  | ||||||
| 			g.write('*') |  | ||||||
| 		} |  | ||||||
| 		g.expr(expr) | 		g.expr(expr) | ||||||
| 	} else if typ == ast.bool_type { | 	} else if typ == ast.bool_type { | ||||||
| 		g.expr(expr) | 		g.expr(expr) | ||||||
|  |  | ||||||
|  | @ -1,13 +0,0 @@ | ||||||
| type SS = string |  | ||||||
| 
 |  | ||||||
| struct ST { |  | ||||||
| 	data &SS |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| fn test_struct_with_reference_alias_fields() { |  | ||||||
| 	mut val := ST{ |  | ||||||
| 		data: &SS('hi') |  | ||||||
| 	} |  | ||||||
| 	println(val.data) |  | ||||||
| 	assert '$val.data' == 'hi' |  | ||||||
| } |  | ||||||
		Loading…
	
		Reference in New Issue