[ https://issues.apache.org/jira/browse/GROOVY-4721?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Paul King closed GROOVY-4721. ----------------------------- > variable declared in try block is in scope in finally block > ----------------------------------------------------------- > > Key: GROOVY-4721 > URL: https://issues.apache.org/jira/browse/GROOVY-4721 > Project: Groovy > Issue Type: Bug > Components: Compiler > Affects Versions: 2.4.0-rc-1 > Reporter: Hamlet D'Arcy > Assignee: Daniel Sun > Priority: Major > Fix For: 5.0.0-beta-1 > > > This code should fail because 'x' is out of scope in the finally block. > {code} > class MyClass { > def myMethod() { > try { > def x = 'foo' > println x > } > finally { > println x > } > } > } > new MyClass().myMethod() > {code} > Instead it prints 'foo' twice. > if myMethod is static then it shows the behavior I expect. > Could be something wrong with VariableScope somewhere? > This example is from the Groovy codebase. We have code that relies on this > behavior (although it is easy to find and fix, just run the UnusedVariable > codenarc inspection, which is how I found it) -- This message was sent by Atlassian Jira (v8.20.10#820010)