/** * 5.3: Method Invocation Conversion * * @author Martin Bravenboer <martin@cs.uu.nl> */ module dryad/jls/conversions/MethodInvocationConversion imports dryad/jls/conversions/Kinds signature constructors MethodInvocationConversion : List(Conversion) -> MethodInvocationConversion strategies /** * Checks if the current type is method invocation convertable to type 'to'. * * @param Type * @type Type -> Type */ is-method-invocation-convertable(|to) = where(method-invocation-conversion(|to)) strategies /** * Construct the method invocation from the current type to type 'to'. * * @type Type -> MethodInvocationConversion */ method-invocation-conversion(|to) = ( identity-conversion(|to) ; ![<id>] + widening-reference-conversions ; maybe-unchecked-conversion(|to) + adhoc-widening-reference-conversions(|to) + widening-primitive-conversion(|to) ; ![<id>] + boxing-conversion ; optional-widening-reference-conversion(|to) + unboxing-conversion ; optional-widening-primitive-conversion(|to) ) ; !MethodInvocationConversion(<id>) strategies /** * Returns the types involved in this method invocation conversion. * * @type Conversion -> List(Type) */ types-of-conversion = ?MethodInvocationConversion(<id>) ; map(types-of-conversion) ; concat /** * Returns the result type of this method invocation conversion. * * @type Conversion -> Type */ result-of-conversion = ?MethodInvocationConversion(<last>) ; result-of-conversion