@samdoiron found a bug in https://github.com/Shopify/liquid-c/pull/154, where parse_context.parse_expression would not respect disable_liquid_c_nodes: true, because even though that would make sure that Liquid::Expression.ruby_parse gets used, it would internally call the hard coded Liquid::Expression.parse that would use Liquid::C::Expression.lax_parse.
Solution
Get rid of the Liquid::Expression.parse monkey patch and instead require the application to use Liquid::C::Expression.parse if they really want to create a constant Liquid::C::Expression object.
Problem
@samdoiron found a bug in https://github.com/Shopify/liquid-c/pull/154, where
parse_context.parse_expression
would not respectdisable_liquid_c_nodes: true
, because even though that would make sure that Liquid::Expression.ruby_parse gets used, it would internally call the hard codedLiquid::Expression.parse
that would useLiquid::C::Expression.lax_parse
.Solution
Get rid of the Liquid::Expression.parse monkey patch and instead require the application to use
Liquid::C::Expression.parse
if they really want to create a constant Liquid::C::Expression object.