diff --git a/idea/src/org/jetbrains/jet/plugin/libraries/JetDecompiledData.java b/idea/src/org/jetbrains/jet/plugin/libraries/JetDecompiledData.java index 459fb6f479f..930b31eed91 100644 --- a/idea/src/org/jetbrains/jet/plugin/libraries/JetDecompiledData.java +++ b/idea/src/org/jetbrains/jet/plugin/libraries/JetDecompiledData.java @@ -54,7 +54,9 @@ public class JetDecompiledData { @NotNull public static JetDecompiledData getDecompiledData(@NotNull VirtualFile virtualFile, @NotNull Project project) { synchronized (LOCK) { - if (virtualFile.getUserData(USER_DATA_KEY) == null) { + JetDecompiledData cachedData = virtualFile.getUserData(USER_DATA_KEY); + //TODO: use cached value that keeps modification tracking for this virtual file + if (cachedData == null || cachedData.getProject() != project) { virtualFile.putUserData(USER_DATA_KEY, DecompiledDataFactory.createDecompiledData(virtualFile, project)); } JetDecompiledData decompiledData = virtualFile.getUserData(USER_DATA_KEY); @@ -89,4 +91,9 @@ public class JetDecompiledData { public JetFile getFile() { return file; } + + @NotNull + public Project getProject() { + return file.getProject(); + } }