From f1c4e09ac30944eccb9160c489f1dbf43226e293 Mon Sep 17 00:00:00 2001
From: Chris Wong <lambda.fairy@gmail.com>
Date: Sun, 12 Jun 2016 15:39:12 +1200
Subject: [PATCH] Silence "duplicate loop labels" warnings

Closes #36
---
 maud_macros/src/render.rs | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/maud_macros/src/render.rs b/maud_macros/src/render.rs
index 3b9e3c0..658befc 100644
--- a/maud_macros/src/render.rs
+++ b/maud_macros/src/render.rs
@@ -20,7 +20,10 @@ impl<'cx, 'a> Renderer<'cx, 'a> {
     pub fn new(cx: &'cx ExtCtxt<'a>) -> Renderer<'cx, 'a> {
         let writer = token::gensym_ident("__maud_writer");
         let result = token::gensym_ident("__maud_result");
-        let loop_label = token::gensym_ident("__maud_loop_label");
+        // Silence "duplicate loop labels" warning by appending ExpnId to label
+        // FIXME This is a gross hack and should be replaced ASAP
+        // See issues #36 and #37
+        let loop_label = token::gensym_ident(&format!("__maud_loop_label_{}", cx.backtrace.into_u32()));
         Renderer {
             cx: cx,
             writer: writer,