15.12.2 is intended to apply to method invocations, but is "re-used" by class instance creations (15.9.3) and method references (15.13.1). Occasionally, there are mismatches in which it's not entirely clear how the 15.12.2 text applies to these other uses.
Here are two known problems, but someone should look carefully to see if there are others.
- During inference, we need to know whether "the invocation is a poly expression" (18.5.2). For constructors, this means that the instance creation expression is a poly expression. For method references, the rules for whether a method invocation is a poly expression, from 15.12, need to be applied (specifically: the method reference does not have type arguments, the compile-time declaration is generic, and the return type of the compile-time declaration mentions one of its type parameters).
- The return type of an invocation type may be erased (15.12.2.6). But, in the cases of a class instance creation or a constructor reference, this is misleading -- the type of a class instance creation is the named type (unless diamond inference occurs).