code: private static Parameter buildParameter(final Map<String, GenericsType> genericFromReceiver, final Map<String, GenericsType> placeholdersFromContext, final Parameter methodParameter, final ClassNode paramType) {
          if (genericFromReceiver.isEmpty() && (placeholdersFromContext==null||placeholdersFromContext.isEmpty())) {
              return methodParameter;
          }
          if (paramType.isArray()) {
              ClassNode componentType = paramType.getComponentType();
              Parameter subMethodParameter = new Parameter(componentType, methodParameter.getName());
              Parameter component = buildParameter(genericFromReceiver, placeholdersFromContext, subMethodParameter, componentType);
              return new Parameter(component.getType().makeArray(), component.getName());
          }
          ClassNode resolved = resolveClassNodeGenerics(genericFromReceiver, placeholdersFromContext, paramType);
  
          return new Parameter(resolved, methodParameter.getName());
      }
docs: Given a parameter, builds a new parameter for which the known generics placeholders are resolved.
  @param genericFromReceiver resolved generics from the receiver of the message
  @param placeholdersFromContext, resolved generics from the method context
  @param methodParameter the method parameter for which we want to resolve generic types
  @param paramType the (unresolved) type of the method parameter
  @return a new parameter with the same name and type as the original one, but with resolved generic types