Describe the bug
Handlebars.net throws IndexOutOfRangeException from HandlebarsDotNet.PathStructure.PathResolver.ResolvePath() on execution of compiled templates that have loose closing blocks.
Examples of templates:
{{#if 0}}test{{/if}}{{/unless}}
{{#if 1}}{{#unless 0}}test{{/if}}{{/unless}}{{/if}}
Expected behavior:
Handlebars.net compiler should catch this type of template errors during parsing and building expression trees and throw HandlebarsCompilerException with a meaningful error message.
Test to reproduce
[Fact]publicvoidTestLooseClosingBlockExpressionException(){Assert.Throws<HandlebarsCompilerException>(()=>{Handlebars.Compile("{{#if 0}}test{{/if}}{{/unless}}")(new{});});}
Describe the bug
Handlebars.net throws
IndexOutOfRangeExceptionfromHandlebarsDotNet.PathStructure.PathResolver.ResolvePath()on execution of compiled templates that have loose closing blocks.Examples of templates:
{{#if 0}}test{{/if}}{{/unless}}{{#if 1}}{{#unless 0}}test{{/if}}{{/unless}}{{/if}}Expected behavior:
Handlebars.net compiler should catch this type of template errors during parsing and building expression trees and throw
HandlebarsCompilerExceptionwith a meaningful error message.Test to reproduce