diff --git a/platform/projectModel-api/src/com/intellij/lang/PerFileMappingsBase.java b/platform/projectModel-api/src/com/intellij/lang/PerFileMappingsBase.java index 23caef9a9574..d35c4915c55a 100644 --- a/platform/projectModel-api/src/com/intellij/lang/PerFileMappingsBase.java +++ b/platform/projectModel-api/src/com/intellij/lang/PerFileMappingsBase.java @@ -95,18 +95,22 @@ public abstract class PerFileMappingsBase implements PersistentStateComponent } if (mappings == null) return null; synchronized (mappings) { - for (VirtualFile cur = file; cur != null; cur = cur.getParent()) { - T t = mappings.get(cur); - if (t != null) return t; - } - for (VirtualFile cur = originalFile; cur != null; cur = cur.getParent()) { - T t = mappings.get(cur); - if (t != null) return t; - } + T t = getMappingForHierarchy(file, mappings); + if (t != null) return t; + t = getMappingForHierarchy(originalFile, mappings); + if (t != null) return t; return mappings.get(null); } } + private static T getMappingForHierarchy(@Nullable VirtualFile file, @NotNull Map mappings) { + for (VirtualFile cur = file; cur != null; cur = cur.getParent()) { + T t = mappings.get(cur); + if (t != null) return t; + } + return null; + } + @Override public T chosenToStored(VirtualFile file, T value) { return value;