Description
Backport of GROOVY-7549 caused a regression in temp type inference of local variable assignment. Consider the following:
class Test { @groovy.transform.ToString(excludes='children') private static class TreeAttr { String name Integer val = 0 List<TreeAttr> children = [] } void test(Integer count) { TreeAttr root = new TreeAttr(name:'foo') List<TreeAttr> collector = root.children for (name in ['bar','baz']) { // tokens in a path def item = collector.find { it.name == name } if (!item) { item = new TreeAttr(name: name) // inferred type of "item" is Object after this point collector.add(item) } collector = item.children if (count) item.val += count } } }
Note: This test case works fine for 3_0_X and master.