diff wip_fix_regression_in_rathaxes_compiler_passes_correctly_resolve_chunk_args_subidentifiers.patch @ 125:3a92a43a3215

Reorder the patch queue so it stays understable
author Louis Opter <louis@lse.epita.fr>
date Sun, 04 Aug 2013 17:09:42 -0700
parents wip.patch@ecba077e0f73
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wip_fix_regression_in_rathaxes_compiler_passes_correctly_resolve_chunk_args_subidentifiers.patch	Sun Aug 04 17:09:42 2013 -0700
@@ -0,0 +1,27 @@
+# HG changeset patch
+# Parent 67dc97cbe736ead44d6c596eb339829a41c4b847
+diff --git a/rathaxes/compiler/passes/common/rtxResolve.inc.cws b/rathaxes/compiler/passes/common/rtxResolve.inc.cws
+--- a/rathaxes/compiler/passes/common/rtxResolve.inc.cws
++++ b/rathaxes/compiler/passes/common/rtxResolve.inc.cws
+@@ -388,7 +388,20 @@
+                 // Argument comes from the Chunk, so we retrieve the *real* type
+                 // That will be resolved after the "local" resolution.
+ 
+-                rtxResolve_BuildLocalSelf(subResVal, theChunk, placeHolder, subidentifiers);
++                if (subidentifiers#front == "local")
++                    rtxResolve_BuildLocalSelf(subResVal, theChunk, placeHolder, subidentifiers);
++                else
++                {
++                    local src_arg;
++                    local src_type;
++                    local src_value;
++                    rtxNodeArgs_GetArgByName(src_resVals, "self", src_arg);
++                    if (rtxNodeArg_getRType(src_arg, src_type) == false)
++                        return false;
++                    if (rtxNodeArg_getValue(src_arg, src_value) == false)
++                        return false;
++                    rtxNodeArgs_AppendArg(subResVal, "self", src_type, src_value);
++                }
+                 local local_self;
+                 rtxNodeArgs_GetArgByName(subResVal, "self", local_self);
+                 local local_type;