@Override
 public JvmConstructorDefinition resolveConstructorCall(
     Resolver resolver, List<ActualParam> actualParams) {
   List<JvmType> argsTypes = new ArrayList<>();
   for (ActualParam actualParam : actualParams) {
     if (actualParam.isNamed()) {
       throw new SemanticErrorException(
           actualParam, "It is not possible to use named parameters on Java classes");
     } else {
       argsTypes.add(actualParam.getValue().calcType(resolver).jvmType(resolver));
     }
   }
   return ReflectionBasedMethodResolution.findConstructorAmong(
       argsTypes, resolver, Arrays.asList(clazz.getConstructors()), this);
 }
 @Override
 public JvmMethodDefinition findMethodFor(
     String name, List<JvmType> argsTypes, Resolver resolver, boolean staticContext) {
   return ReflectionBasedMethodResolution.findMethodAmong(
       name, argsTypes, resolver, staticContext, Arrays.asList(clazz.getMethods()), this);
 }