From b222e4efaebfdba1497f2675d2d11ff8c8e384db Mon Sep 17 00:00:00 2001 From: shadowninja55 <49539636+shadowninja55@users.noreply.github.com> Date: Sat, 10 Jul 2021 13:24:53 -0400 Subject: [PATCH] checker: change expr depth limit to 150 (#10745) --- vlib/v/checker/checker.v | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/vlib/v/checker/checker.v b/vlib/v/checker/checker.v index f2db021d5b..67861a745e 100644 --- a/vlib/v/checker/checker.v +++ b/vlib/v/checker/checker.v @@ -3651,6 +3651,7 @@ pub fn (mut c Checker) assign_stmt(mut node ast.AssignStmt) { } left_sym := c.table.get_type_symbol(left_type_unwrapped) right_sym := c.table.get_type_symbol(right_type_unwrapped) + if c.pref.translated { // TODO fix this in C2V instead, for example cast enums to int before using `|` on them. // TODO replace all c.pref.translated checks with `$if !translated` for performance @@ -4812,7 +4813,8 @@ pub fn (mut c Checker) expr(node ast.Expr) ast.Type { defer { c.expr_level-- } - if c.expr_level > 200 { + // c.expr_level set to 150 so that stack overflow does not occur on windows + if c.expr_level > 150 { c.error('checker: too many expr levels: $c.expr_level ', node.position()) return ast.void_type }