MommaWatasu / OteraEngine.jl

This package is a template engine for Julia Lang.
https://mommawatasu.github.io/OteraEngine.jl/stable
MIT License
20 stars 4 forks source link

Regression in 0.5.0 using trim_blocks #29

Closed visr closed 6 months ago

visr commented 6 months ago

Hi, thanks for this package!

This example started failing with MethodError: no method matching lstrip(::Nothing). If I disable trim_blocks it works fine. If I use autospace, it crashes with the same error.

tmp = Template(
    """
{% for i in 1:3 %}
    Hello {{ i }}
{% end %}
""";
    path = false,
    config = Dict("trim_blocks" => true),
)
tmp()

The full stacktrace, on Julia 1.10 and OteraEngine 0.5.0:

ERROR: TemplateError: failed to render: following error occurred during rendering:
MethodError(lstrip, (nothing,), 0x0000000000007c34)
Stacktrace:
 [1] (::Template)(; init::Dict{String, Any})
   @ OteraEngine C:\Users\visser_mn\.julia\dev\OteraEngine\src\template.jl:123
 [2] (::Template)()
   @ OteraEngine C:\Users\visser_mn\.julia\dev\OteraEngine\src\template.jl:109
 [3] top-level scope
   @ d:\Ribasim\utils\gen_python.jl:81

caused by: MethodError: no method matching lstrip(::Nothing)

Closest candidates are:
  lstrip(::Any, ::InlineStrings.String1)
   @ InlineStrings C:\Users\visser_mn\.julia\packages\InlineStrings\rlLZO\src\InlineStrings.jl:481
  lstrip(::Any, ::InlineStrings.InlineString)
   @ InlineStrings C:\Users\visser_mn\.julia\packages\InlineStrings\rlLZO\src\InlineStrings.jl:482
  lstrip(::Any, ::AbstractString)
   @ Base strings\util.jl:363
  ...

Stacktrace:
 [1] (::Template)(; init::Dict{String, Any})
   @ OteraEngine C:\Users\visser_mn\.julia\dev\OteraEngine\src\template.jl:119
 [2] (::Template)()
   @ OteraEngine C:\Users\visser_mn\.julia\dev\OteraEngine\src\template.jl:109
 [3] top-level scope
   @ d:\Ribasim\utils\gen_python.jl:81
MommaWatasu commented 6 months ago

Thanks for your report. It was ridiculous mistake. This bug was fixed and released as v0.5.1.