You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Henri Biestro (Jira)" <ji...@apache.org> on 2025/05/30 09:22:00 UTC
[jira] [Updated] (JEXL-439) When using reference capture, incorrect scoping when local variable redefines a captured symbol
[ https://issues.apache.org/jira/browse/JEXL-439?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Henri Biestro updated JEXL-439:
-------------------------------
Summary: When using reference capture, incorrect scoping when local variable redefines a captured symbol (was: When using reference capture, incorrect scoping when local variable shades a captured one in stack frame.)
> When using reference capture, incorrect scoping when local variable redefines a captured symbol
> -----------------------------------------------------------------------------------------------
>
> Key: JEXL-439
> URL: https://issues.apache.org/jira/browse/JEXL-439
> Project: Commons JEXL
> Issue Type: Bug
> Affects Versions: 3.5.0
> Reporter: Xu Pengcheng
> Assignee: Henri Biestro
> Priority: Major
> Fix For: 3.5.1
>
>
> In relation to JEXL-426, the dynamic scope is wrongly managed when a captured variable (ie a lexical variable defined at top-level) is overridden in a function (same symbol is used to name local lexical variable) and this function calls another that captures the top-level variable.
> With reference capture, when a symbol is captured, the call frame ensures captured variables are wrapped into a reference ensuring the 'pass by reference' behavior. The culprit here is that when redefining the variable, that new variable must be wrapped, not pass the previous one.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)