protected static def getGeneratedFileNames() {
        foo = 0
        while (true) {
                foo = <selection>test</selection>()
        }
        int t = foo
}

static String test() {
        def foo = 42;
        println(foo)
        return foo
}
-----
protected static def getGeneratedFileNames() {
        foo = 0
        while (true) {
            def foo1 = 42
            println(foo1)
            foo = foo1
        }
        int t = foo
}

static String test() {
        def foo = 42;
        println(foo)
        return foo
}