Initial LVTI support in IntelliJ IDEA

Brian Goetz brian.goetz at
Fri Sep 29 23:31:36 UTC 2017

I have tried this out and so far it looks very nice.  I tried a few examples where upward projection would be needed, and it seems to work as expected.  Also works as expected with null types (error), anon class types, and the intersections I threw at it.  

One small thing I noticed is that the “hover” support could be improved.  (I’m using MacOS.)  When I do

    var x = blah()

there’s no combination of modifier keys I could find where, if I hover over the declaration of x or over the var, it shows me the inferred type.  If I cmd-hover over the _use_ of x, it shows me the type.  It would be great if there was some way to more directly ask “So, what’s the type of this inferred thing?”  

Many of the error messages when trying to infer things that can’t be inferred were pretty good.  Some cases probably could be improved.  For example, if I say:

var y = q -> 3;

it says “q -> 3 is not a functional interface”.  It identifies correctly as an error, but I’d expect to see an error message like “cannot infer type of lambda expression; functional interface required.”  

Overall looks great!


> On Sep 28, 2017, at 7:29 PM, Tagir Valeev <amaembo at> wrote:
> Hello!
> I'd like to announce that initial LVTI support is available in
> IntelliJ IDEA 2017.3 EAP, including support of 'var' keyword, syntax
> highlighting, some compilation errors (like when usage of 'var' is
> impossible) and intention actions to convert explicit type to var and
> vice versa. You can download EAP version here:
> Please post bug reports to our bug tracker:
> Big thanks to Anna Kozlova and Roman Shevchenko who work on this feature!
> With best regards,
> Tagir Valeev.

More information about the amber-dev mailing list