cgen: use c_name() while generating code for `or {}`
							parent
							
								
									ff88906e9a
								
							
						
					
					
						commit
						9e715b8701
					
				| 
						 | 
					@ -2654,18 +2654,19 @@ fn (mut g Gen) insert_before(s string) {
 | 
				
			||||||
// to access its fields (`.ok`, `.error` etc)
 | 
					// to access its fields (`.ok`, `.error` etc)
 | 
				
			||||||
// `os.cp(...)` => `Option bool tmp = os__cp(...); if (!tmp.ok) { ... }`
 | 
					// `os.cp(...)` => `Option bool tmp = os__cp(...); if (!tmp.ok) { ... }`
 | 
				
			||||||
fn (mut g Gen) or_block(var_name string, stmts []ast.Stmt, return_type table.Type) {
 | 
					fn (mut g Gen) or_block(var_name string, stmts []ast.Stmt, return_type table.Type) {
 | 
				
			||||||
 | 
						cvar_name := c_name(var_name)
 | 
				
			||||||
	mr_styp := g.base_type(return_type)
 | 
						mr_styp := g.base_type(return_type)
 | 
				
			||||||
	g.writeln(';') // or')
 | 
						g.writeln(';') // or')
 | 
				
			||||||
	g.writeln('if (!${var_name}.ok) {')
 | 
						g.writeln('if (!${cvar_name}.ok) {')
 | 
				
			||||||
	g.writeln('\tstring err = ${var_name}.v_error;')
 | 
						g.writeln('\tstring err = ${cvar_name}.v_error;')
 | 
				
			||||||
	g.writeln('\tint errcode = ${var_name}.ecode;')
 | 
						g.writeln('\tint errcode = ${cvar_name}.ecode;')
 | 
				
			||||||
	last_type, type_of_last_expression := g.type_of_last_statement(stmts)
 | 
						last_type, type_of_last_expression := g.type_of_last_statement(stmts)
 | 
				
			||||||
	if last_type == 'v.ast.ExprStmt' && type_of_last_expression != 'void' {
 | 
						if last_type == 'v.ast.ExprStmt' && type_of_last_expression != 'void' {
 | 
				
			||||||
		g.indent++
 | 
							g.indent++
 | 
				
			||||||
		for i, stmt in stmts {
 | 
							for i, stmt in stmts {
 | 
				
			||||||
			if i == stmts.len - 1 {
 | 
								if i == stmts.len - 1 {
 | 
				
			||||||
				g.indent--
 | 
									g.indent--
 | 
				
			||||||
				g.write('\t*(${mr_styp}*) ${var_name}.data = ')
 | 
									g.write('\t*(${mr_styp}*) ${cvar_name}.data = ')
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			g.stmt(stmt)
 | 
								g.stmt(stmt)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue