diff --git a/TestSuite/lambda_OnExcept_2.pas b/TestSuite/lambda_OnExcept_2.pas new file mode 100644 index 000000000..ee1cdb995 --- /dev/null +++ b/TestSuite/lambda_OnExcept_2.pas @@ -0,0 +1,7 @@ +begin + var p: procedure := ()->begin end; + try + except + on Exception do + end; +end. \ No newline at end of file diff --git a/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs b/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs index 976abb896..f2f4e04c5 100644 --- a/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs +++ b/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs @@ -149,8 +149,9 @@ namespace TreeConverter.LambdaExpressions.Closure _visitor.convertion_data_and_alghoritms.statement_list_stack_push(sl); _visitor.context.enter_code_block_without_bind(); - - _visitor.context.add_var_definition(eh.variable.name, _visitor.get_location(eh.variable), _visitor.convert_strong(eh.type_name), PascalABCCompiler.SemanticTree.polymorphic_state.ps_common, true); + + if (eh.variable != null) + _visitor.context.add_var_definition(eh.variable.name, _visitor.get_location(eh.variable), _visitor.convert_strong(eh.type_name), PascalABCCompiler.SemanticTree.polymorphic_state.ps_common, true); //SymbolInfo si = _visitor.context.find_first(eh.variable.name); //var csi = new CapturedVariablesTreeNode.CapturedSymbolInfo(eh, si); //_currentTreeNode.VariablesDefinedInScope.Add(new CapturedVariablesTreeNode.CapturedSymbolInfo(eh, si));