> I agree - there are two types: the one based on real classfile descriptor and the unified, curried one exposed by MethodHandle::type(). The former is used for lookup, the latter for invocation. Maybe lookupType() and invocationType() ?
>> There are actually two types here, and they both should be exposed.  One is a property of MHDesc (which is correctly called type()) which describes the invocation type of the MH; the other is a propertly of DirectMHDesc (which needs a new name) and which is the type that one would provide to the lookup / place in the NameAndType. We're currently in an inconsistent situation.
>>> one way to avoid that ambiguity is to rename methodType() to type() (as in NameAndType).
>>>> Thanks for poking into these new APIs.  This is a good question.
>>>> and that this would provide alignment with the live MethodHandle behavior.
>>>> version.  Hence the conflict.
>>>> is a property of the MHDesc?
>>>>> the receiver of a virtual method is included in the parameter list.
>>>>> method types for some operations.