blob: 6dd5ef22a18f4795a54fb4718f8169630a69b304 [file] [log] [blame]
package groovy.bugs
/**
* @version $Revision$
*/
class NestedClosure2Bug extends TestSupport {
Object f
void testFieldBug() {
def closure = {
return {
f = 123
return null
}
}
def value = closure()
value = value()
assert f == 123
}
void testBugOutsideOfScript() {
def a = 123
def b = 456
def closure = {
println b
def c = 999
return {
f = 2222111
println f
println c
def d = 678
return {
println f
assert f == 2222111
println d
return a
}
}
}
def c2 = closure()
def c3 = c2()
def value = c3()
assert f == 2222111
assert value == 123
}
void testBug() {
assertScript """
def a = 123
def closure = {
return {
return {
return a
}
}
}
def c2 = closure()
def c3 = c2()
value = c3()
assert value == 123
"""
}
}