From 7f998cd3712b52e285dddb017fc9f4867ef2fdbb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=91=D0=BE=D0=BD=D0=B4=D0=B0=D1=80=D0=B5=D0=B2=20=D0=98?= =?UTF-8?q?=D0=B2=D0=B0=D0=BD?= Date: Thu, 3 Oct 2019 11:35:58 +0200 Subject: [PATCH] bug fix #2113 --- TestSuite/lambdas_pointers.pas | 6 ++++++ .../Closure/CapturedVariablesTreeBuilder.cs | 1 + TreeConverter/TreeConversion/CompilationErrors.cs | 2 +- 3 files changed, 8 insertions(+), 1 deletion(-) create mode 100644 TestSuite/lambdas_pointers.pas diff --git a/TestSuite/lambdas_pointers.pas b/TestSuite/lambdas_pointers.pas new file mode 100644 index 000000000..617ddc487 --- /dev/null +++ b/TestSuite/lambdas_pointers.pas @@ -0,0 +1,6 @@ +begin + var i: integer; + var p: procedure(ptr: pointer); + p := ptr->begin assert(@i = pinteger(ptr)) end; + p(@i); +end. \ No newline at end of file diff --git a/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs b/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs index 9fc82d286..0c7c57400 100644 --- a/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs +++ b/TreeConverter/LambdaExpressions/Closure/CapturedVariablesTreeBuilder.cs @@ -195,6 +195,7 @@ namespace TreeConverter.LambdaExpressions.Closure si.sym_info.semantic_node_type == semantic_node_type.common_namespace_node || si.sym_info.semantic_node_type == semantic_node_type.compiled_unit_node || si.sym_info.semantic_node_type == semantic_node_type.template_type || + si.sym_info.semantic_node_type == semantic_node_type.ref_type_node || si.sym_info.semantic_node_type == semantic_node_type.generic_indicator || si.sym_info.semantic_node_type == semantic_node_type.class_constant_definition || si.sym_info.semantic_node_type == semantic_node_type.function_constant_definition || // SSM 03.11.18 bug fix #1449 diff --git a/TreeConverter/TreeConversion/CompilationErrors.cs b/TreeConverter/TreeConversion/CompilationErrors.cs index 92a24307a..4d9f23aa6 100644 --- a/TreeConverter/TreeConversion/CompilationErrors.cs +++ b/TreeConverter/TreeConversion/CompilationErrors.cs @@ -2936,7 +2936,7 @@ namespace PascalABCCompiler.TreeConverter public ThisTypeOfVariablesCannotBeCaptured(location loc) : base(loc) { - + } public override string ToString()