Jeffrey Morlan
Jeffrey Morlan
I think #1200 may introduce a false positive when the varargs array itself is nullable: ```java @NullMarked class Test { void varargsTest(T @Nullable... args) {} void f() { this.varargsTest((String[])null); }...
A thought: javac has already determined whether every call is varargs or not. Could be simpler/more efficient to reuse the result of that work, which can be found in `((JCTree.JCMethodInvocation)...
Other tools report the same errors (tested Checker Framework, Eclipse, and the JSpecify reference implementation). It's just not practical to try to compute the implications of arbitrary boolean expressions since...
That's interesting about IntelliJ - didn't know it could do that. For me one of the big attractions of NullAway is its speed, so I wouldn't want it becoming 'smarter'...
I looked into these a bit. There are actually 3 different issues: ### 1. `for` of reference over `Iterable`: The synthetic iterator variable in dataflow isn't built with the right...
We do have a LibraryModels that null-marks many common collection-related classes, including both `java.lang.Iterable` and `java.util.Iterator`. The main purpose of this LibraryModels is to prevent unintentionally adding nullables to a...
This is really a Java limitation - you can see an analogous error with plain Java types: ```java public interface Parent { default Object getName() { return new Object(); }...
It wouldn't make sense to expose an anonymous class as the type of a public field, since anonymous classes aren't expected to be a stable API. Adding or removing a...