From 50d02c2340c9f50fdec4b04d565bd9ba7f9c8a86 Mon Sep 17 00:00:00 2001 From: Mikhalkovich Stanislav Date: Wed, 24 Jul 2019 21:31:58 +0300 Subject: [PATCH] fix #2046 --- TestSuite/lambda_OnExcept_2.pas | 7 +++++++ .../Closure/CapturedVariablesTreeBuilder.cs | 5 +++-- 2 files changed, 10 insertions(+), 2 deletions(-) create mode 100644 TestSuite/lambda_OnExcept_2.pas 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));