| These two classes illustrate dependencies between different |
| compilation units. |
| As of 09/06/2011 these generated two different exceptions in the |
| compiler. |
| Both of those are fixed, but we should investigate further whether all |
| similar cases are correctly handled now. TODO! |
| |
| If the two classes are compiled individually or in the superclass then |
| subclass order: |
| |
| javac -processor org.checkerframework.checker.nullness.NullnessChecker Bug109_A.java Bug109_B.java |
| |
| everything works as expected. |
| If they are compiled in the subclass then superclass order: |
| |
| javac -processor org.checkerframework.checker.nullness.NullnessChecker Bug109_B.java Bug109_A.java |
| |
| the compiler used to throw exceptions. |
| These two problems are now fixed. |
| The problem was that AnnotatedTypeFactory.getAnnotatedType looks at a |
| field initializer to determine its type. When the field was in a |
| different class, this lead to a call of getPath with a tree in a |
| different compilation unit, which cannot be handled. |
| We now conservatively return null sooner. |