@@ -471,7 +471,7 @@ fn (mut g Gen) gen_multi_return_assign(node &ast.AssignStmt, return_type ast.Typ
471471 // TODO Handle in if_expr
472472 is_opt := return_type.has_flag (.optional)
473473 mr_var_name := 'mr_$node.pos.pos '
474- mr_styp := g.typ (return_type)
474+ mr_styp := g.typ (return_type. clear_flag (.optional) )
475475 g.write ('$mr_styp $mr_var_name = ' )
476476 g.expr (node.right[0 ])
477477 g.writeln (';' )
@@ -505,9 +505,9 @@ fn (mut g Gen) gen_multi_return_assign(node &ast.AssignStmt, return_type ast.Typ
505505 if is_opt {
506506 mr_base_styp := g.base_type (return_type)
507507 if is_auto_heap {
508- g.writeln ('HEAP${noscan} ($mr_base_styp , *( $mr_base_styp *) $ {mr_var_name}.data) .arg$i ) });' )
508+ g.writeln ('HEAP${noscan} ($mr_base_styp , $ {mr_var_name} .arg$i ) });' )
509509 } else {
510- g.writeln ('(*( $mr_base_styp *) $ {mr_var_name}.data) .arg$i });' )
510+ g.writeln ('$ {mr_var_name} .arg$i });' )
511511 }
512512 } else {
513513 if is_auto_heap {
@@ -520,9 +520,9 @@ fn (mut g Gen) gen_multi_return_assign(node &ast.AssignStmt, return_type ast.Typ
520520 if is_opt {
521521 mr_base_styp := g.base_type (return_type)
522522 if is_auto_heap {
523- g.writeln (' = HEAP${noscan} ($mr_base_styp , *( $mr_base_styp *) $ {mr_var_name}.data) .arg$i );' )
523+ g.writeln (' = HEAP${noscan} ($mr_base_styp , $ {mr_var_name} .arg$i );' )
524524 } else {
525- g.writeln (' = (*( $mr_base_styp *) $ {mr_var_name}.data) .arg$i ;' )
525+ g.writeln (' = $ {mr_var_name} .arg$i ;' )
526526 }
527527 } else {
528528 if is_auto_heap {
0 commit comments