cgen: minor optimization of `index_expr()`
							parent
							
								
									a45ad47841
								
							
						
					
					
						commit
						628f13f1c8
					
				|  | @ -2136,12 +2136,9 @@ fn (mut g Gen) if_expr(node ast.IfExpr) { | ||||||
| } | } | ||||||
| 
 | 
 | ||||||
| fn (mut g Gen) index_expr(node ast.IndexExpr) { | fn (mut g Gen) index_expr(node ast.IndexExpr) { | ||||||
| 	// TODO else doesn't work with sum types
 |  | ||||||
| 	mut is_range := false |  | ||||||
| 	match node.index { | 	match node.index { | ||||||
| 		ast.RangeExpr { | 		ast.RangeExpr { | ||||||
| 			sym := g.table.get_type_symbol(node.left_type) | 			sym := g.table.get_type_symbol(node.left_type) | ||||||
| 			is_range = true |  | ||||||
| 			if sym.kind == .string { | 			if sym.kind == .string { | ||||||
| 				g.write('string_substr(') | 				g.write('string_substr(') | ||||||
| 				g.expr(node.left) | 				g.expr(node.left) | ||||||
|  | @ -2176,11 +2173,8 @@ fn (mut g Gen) index_expr(node ast.IndexExpr) { | ||||||
| 				g.write('.len') | 				g.write('.len') | ||||||
| 			} | 			} | ||||||
| 			g.write(')') | 			g.write(')') | ||||||
| 			return |  | ||||||
| 		} | 		} | ||||||
| 		else {} | 		else { | ||||||
| 	} |  | ||||||
| 	if !is_range { |  | ||||||
| 			sym := g.table.get_type_symbol(node.left_type) | 			sym := g.table.get_type_symbol(node.left_type) | ||||||
| 			left_is_ptr := node.left_type.is_ptr() | 			left_is_ptr := node.left_type.is_ptr() | ||||||
| 			if node.left_type.has_flag(.variadic) { | 			if node.left_type.has_flag(.variadic) { | ||||||
|  | @ -2303,6 +2297,7 @@ fn (mut g Gen) index_expr(node ast.IndexExpr) { | ||||||
| 			} | 			} | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
|  | } | ||||||
| 
 | 
 | ||||||
| [inline] | [inline] | ||||||
| fn (g Gen) expr_is_multi_return_call(expr ast.Expr) bool { | fn (g Gen) expr_is_multi_return_call(expr ast.Expr) bool { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue