Description
In the code below, the "if" condition throws a NPE when it reaches the "p3" object. If I remove the @CompileStatic from the "SomeOther" class it works.
import groovy.transform.CompileStatic @CompileStatic class Person { String name OtherInfo otherInfo } @CompileStatic class OtherInfo { int favoriteNumber } @CompileStatic class SomeOther { SomeOther() { Person p1 = new Person(name: 'Ben', otherInfo: new OtherInfo(favoriteNumber: 1)) Person p2 = new Person(name: 'Aaron', otherInfo: new OtherInfo()) Person p3 = new Person(name: 'Fred') [p1,p2,p3].each { Person p -> println "checking: ${p.name}" println p?.otherInfo?.favoriteNumber if(p?.otherInfo?.favoriteNumber == 7){ println "luckiest number!" } } } } new SomeOther()