From 0711e3667b1e06e891b1b6972035d0330c5ae4c2 Mon Sep 17 00:00:00 2001 From: bott Date: Fri, 14 Sep 2018 02:14:58 +0200 Subject: Fix operator preference at loop.index --- askama_derive/src/generator.rs | 2 +- testing/templates/precedence-for.html | 2 +- testing/tests/loops.rs | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/askama_derive/src/generator.rs b/askama_derive/src/generator.rs index d0ac030..b6b5146 100644 --- a/askama_derive/src/generator.rs +++ b/askama_derive/src/generator.rs @@ -748,7 +748,7 @@ impl<'a> Generator<'a> { if let Expr::Var(name) = *obj { if name == "loop" { if attr == "index" { - buf.write("_loop_index + 1"); + buf.write("(_loop_index + 1)"); return DisplayWrap::Unwrapped; } else if attr == "index0" { buf.write("_loop_index"); diff --git a/testing/templates/precedence-for.html b/testing/templates/precedence-for.html index e5f7e8b..c8d2cdd 100644 --- a/testing/templates/precedence-for.html +++ b/testing/templates/precedence-for.html @@ -1,3 +1,3 @@ {% for s in strings %} - {{- loop.index0 }}. {{ s }}{% if !loop.first %}{% else %} (first){% endif %} + {{- loop.index0 }}. {{ s }}{{ 2 * loop.index }}{% if !loop.first %}{% else %} (first){% endif %} {% endfor %} diff --git a/testing/tests/loops.rs b/testing/tests/loops.rs index 6c2f35d..70ebb21 100644 --- a/testing/tests/loops.rs +++ b/testing/tests/loops.rs @@ -44,5 +44,5 @@ fn test_precedence_for() { let s = PrecedenceTemplate { strings: vec!["A", "alfa", "1"], }; - assert_eq!(s.render().unwrap(), "0. A (first)\n1. alfa\n2. 1\n"); + assert_eq!(s.render().unwrap(), "0. A2 (first)\n1. alfa4\n2. 16\n"); } -- cgit