Manu Sridharan
Manu Sridharan
This shouldn't be too hard to fix. Basically we want to model library methods that unconditionally throw an exception, like `failWithMessage`. Right now our `LibraryModels` interface does not allow for...
@jonatan-ivanov since this can be accomplished with a `@Contract` annotation as @scordio observed, can we close this issue?
It is a good point that we need a way to auto-discover `@Contract` annotations. Options: 1. Treat any annotation with simple name `Contract` as a contract annotation by default. Here...
There have been renewed discussions within JSpecify around adding `@Contract` (/cc @cpovirk @sdeleuze). But there is work to specify the language of supported contracts and to get broader buy-in. So...
Hi all, haven't forgotten about this, just thinking a bit more. I'm leaning toward recognizing any `@Contract` annotation but only reporting errors regarding the formatting if it's a JetBrains annotation...
Thanks for the report, @bannmann. @jeffrey-easyesi is correct that we deliberately don't do this checking as we want to keep our dataflow analysis fast to minimize NullAway's build-time overhead. We've...
Hi @wimdeblauwe, thanks for the report. We have some documentation on our handling of maps [here](https://github.com/uber/NullAway/wiki/Maps). A heuristic we have to implement in handling maps is determining when the argument...
Sorry what I meant was: ```java static final String httpStatusValue = "200"; public static void main(String[] args) { Map map = new HashMap(); if (map.get(someOperation()) != null) { staticMethod(map.get(someOperation())); }...
Thanks for the report. We have partial support for contracts and don't yet support detecting when `true` or `false` is passed as a literal argument. @mhalbritter is this showing up...
@sbrannen do you have any examples with `true` or `false` in the antecedents and then `null` or `!null` in the consequent? In any case, we can look into this one...