protected ClassNode inferReturnTypeGenerics(ClassNode receiver,MethodNode method,Expression arguments){
  return inferReturnTypeGenerics(receiver,method,arguments,null);
}

protected ClassNode inferReturnTypeGenerics ( ClassNode receiver , MethodNode method , Expression arguments ) { return inferReturnTypeGenerics ( receiver , method , arguments , null ) ; }
if a method call returns a parameterized type , then we can perform additional inference on the return type , so that the type gets actual type parameters . for example , the method arrays . aslist ( t . . . ) is generified with type t which can be deduced from actual type arguments .
