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