private HashBangConflict checkHashBangConflict(@NotNull String hashbang) {
    for (Map.Entry<String, FileTypeManagerImpl.FileTypeWithDescriptor> entry : myTempPatternsTable.getInternalRawHashBangPatterns().entrySet()) {
      String existingHashBang = entry.getKey();
      if (hashbang.contains(existingHashBang) || existingHashBang.contains(hashbang)) {
        FileTypeManagerImpl.FileTypeWithDescriptor ftd = entry.getValue();
        boolean exact = existingHashBang.equals(hashbang);
        boolean writeable = !ftd.fileType().isReadOnly() && !isStandardFileType(ftd.fileType());
        return new HashBangConflict(ftd, exact, writeable, existingHashBang);
      }
    }
    for (FileTypeRegistry.FileTypeDetector detector : FileTypeRegistry.FileTypeDetector.EP_NAME.getIterable()) {
      if (detector instanceof HashBangFileTypeDetector) {
        String existingHashBang = ((HashBangFileTypeDetector)detector).getMarker();
        if (hashbang.contains(existingHashBang) || existingHashBang.contains(hashbang)) {
          FileType fileType = ((HashBangFileTypeDetector)detector).getFileType();
          boolean exact = existingHashBang.equals(hashbang);
          boolean writeable = false;
          FileTypeManagerImpl.FileTypeWithDescriptor ftd = FileTypeManagerImpl.detectPluginDescriptor(fileType);
          return new HashBangConflict(ftd, exact, writeable, existingHashBang);
        }
      }
    }
    return null;
  }
private HashBangConflict checkHashBangConflict(@NotNull String hashbang)