Browse Source

Fix for bug in pre render function for compile time variables.

Bug was exposed when implementing support for records (#105).

Relates to #61.
Andreas Stenius 11 years ago
parent
commit
4d92fbc59a
1 changed files with 7 additions and 2 deletions
  1. 7 2
      src/erlydtl_compiler.erl

+ 7 - 2
src/erlydtl_compiler.erl

@@ -847,9 +847,14 @@ body_ast(DjangoParseTree, Context, TreeWalker) ->
                                                        Counter = TreeWalkerAcc#treewalker.counter,
                                                        Name = lists:concat([pre_render, Counter]),
                                                        Ast1 = erl_syntax:application(none, erl_syntax:atom(Name),
-                                                                                     [erl_syntax:list(PresetVars)]),
+                                                                                     [erl_syntax:list(PresetVars),
+                                                                                      erl_syntax:variable("RenderOptions")]),
                                                        PreRenderAst = erl_syntax:function(erl_syntax:atom(Name),
-                                                                                          [erl_syntax:clause([erl_syntax:variable("_Variables")], none, [Ast])]),
+                                                                                          [erl_syntax:clause([erl_syntax:variable("_Variables"),
+                                                                                                              erl_syntax:variable("RenderOptions")],
+                                                                                                             none,
+                                                                                                             options_match_ast(Context, TreeWalkerAcc)
+                                                                                                             ++ [Ast])]),
                                                        PreRenderAsts = Info#ast_info.pre_render_asts,
                                                        Info1 = Info#ast_info{pre_render_asts = [PreRenderAst | PreRenderAsts]},
                                                        {Ast1, {merge_info(Info1, InfoAcc), TreeWalkerAcc#treewalker{counter = Counter + 1}}}