Funny @Flow annotation popup while overriding a method in Java

When you're overriding or implementing some method in the Java editor, I noticed that besides the obvious and usefull popups revealing info about the fields of the superclass method you're about to override/implement (see figure 1), there are also these popups showing some @Flow annotation on each parameter (see figure 2). What is this popup and this annotation all about? Since I don't understand its use(fullness) it's just getting in my way and distracting me form work. Could someone please explain what it's telling me or how it's usefull?

In this example I'm implementing java.util.List in my own subclass and 'overriding' the set method.

figure 1: well-known and usefull parameter support popup

figure 2: funny @Flow annotation popup



I just noticed the dialog I'm talking about is the parameter info dialog (menu option 'View | Parameter Info'). Placing the cursor in the actual parameterlist of some method call containing some Collection-type parameter and query the param-info will reveal these InteliJ-specific annotations like @Nullable, @NotNull and this @Flow annotation.

The source and javadoc for this annotation (org.intellij.lang.annotations.Flow) can be found in 'org.jetbrains:annotations:13.0' when looking up the src-jar on e.g. Maven Central (a 14.x version does not seem to be there). But I do not really comprehend what it's telling me. Maybe someone brighter than me :p, perhaps with more understanding of all these intelij-custom-annotations stuff also, could have a look and explain it's functionality?

Please sign in to leave a comment.