From 10277d739cae2b98b6629b52c64664bb2975e366 Mon Sep 17 00:00:00 2001 From: yossyJ <28825627+yossyJ@users.noreply.github.com> Date: Mon, 7 Jan 2019 22:37:23 +0900 Subject: Fix loop.last --- askama_derive/src/generator.rs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'askama_derive/src') diff --git a/askama_derive/src/generator.rs b/askama_derive/src/generator.rs index 6c02a26..288ddae 100644 --- a/askama_derive/src/generator.rs +++ b/askama_derive/src/generator.rs @@ -467,15 +467,15 @@ impl<'a> Generator<'a> { let expr_code = self.visit_expr_root(iter); self.write_buf_writable(buf); - buf.write("for (_loop_index, _loop_last, "); + buf.write("for ("); self.visit_target(buf, var); match iter { Expr::Range(_, _, _) => buf.writeln(&format!( - ") in ::askama::helpers::enumerate({}) {{", + ", _loop_item) in ::askama::helpers::TemplateLoop::new({}) {{", expr_code )), _ => buf.writeln(&format!( - ") in ::askama::helpers::enumerate((&{}).into_iter()) {{", + ", _loop_item) in ::askama::helpers::TemplateLoop::new((&{}).into_iter()) {{", expr_code )), }; @@ -913,16 +913,16 @@ impl<'a> Generator<'a> { if let Expr::Var(name) = *obj { if name == "loop" { if attr == "index" { - buf.write("(_loop_index + 1)"); + buf.write("(_loop_item.index + 1)"); return DisplayWrap::Unwrapped; } else if attr == "index0" { - buf.write("_loop_index"); + buf.write("_loop_item.index"); return DisplayWrap::Unwrapped; } else if attr == "first" { - buf.write("(_loop_index == 0)"); + buf.write("_loop_item.first"); return DisplayWrap::Unwrapped; } else if attr == "last" { - buf.write("_loop_last"); + buf.write("_loop_item.last"); return DisplayWrap::Unwrapped; } else { panic!("unknown loop variable"); -- cgit