@Override
  public <T  extends Compiler> T @NotNull [] getCompilers(@NotNull Class<T> compilerClass) {
    final List<T> compilers = new ArrayList<>(myCompilers.size());
    for (final Compiler item : ContainerUtil.concat(myCompilers.keySet(), Compiler.EP_NAME.getExtensions(myProject))) {
      T concreteCompiler = ObjectUtils.tryCast(item, compilerClass);
      if (concreteCompiler != null) {
        compilers.add(concreteCompiler);
      }
    }
    if (compilerClass.isAssignableFrom(InspectionValidatorWrapper.class)) {
      for (InspectionValidator validator : InspectionValidator.EP_NAME.getExtensions(myProject)) {
        compilers.add(compilerClass.cast(InspectionValidatorWrapper.create(myProject, validator)));
      }
    }
    return compilers.toArray(ArrayUtil.newArray(compilerClass, compilers.size()));
  }
@Override
  public <T  extends Compiler> T @NotNull [] getCompilers(@NotNull Class<T> compilerClass)