@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); }