T (@NotNull @NonNls CharSequence fileName) { if (!myExactFileNameMappings.isEmpty()) { T t = myExactFileNameMappings.get(fileName); if (t != null) return t; } if (!myExactFileNameAnyCaseMappings.isEmpty()) { // even hash lookup with case-insensitive hasher is costly for isIgnored checks during compile T t = myExactFileNameAnyCaseMappings.get(fileName); if (t != null) return t; } for (Pair<FileNameMatcher, T> mapping : myMatchingMappings) { if (mapping.getFirst().acceptsCharSequence(fileName)) return mapping.getSecond(); } return findByExtension(FileUtilRt.getExtension(fileName)); }