fix aop test: all PSI is invalidated on file type change (IDEA-CR-21137)

This commit is contained in:
peter
2017-05-17 10:51:47 +02:00
parent 81e092dc8f
commit 7f516fabd1
2 changed files with 10 additions and 1 deletions
@@ -74,6 +74,9 @@ public class SmartPointerManagerImpl extends SmartPointerManager {
PsiFile containingFile,
boolean forInjected) {
if (containingFile != null && !containingFile.isValid() || containingFile == null && !element.isValid()) {
if (containingFile != null) {
PsiUtilCore.ensureValid(containingFile);
}
PsiUtilCore.ensureValid(element);
LOG.error("Invalid element:" + element);
}
@@ -6,7 +6,9 @@ package com.intellij.testFramework;
import com.intellij.psi.PsiElement;
import com.intellij.psi.PsiFile;
import com.intellij.psi.SmartPointerManager;
import com.intellij.psi.SmartPsiElementPointer;
import com.intellij.psi.impl.source.resolve.FileContextUtil;
import org.jetbrains.annotations.Nullable;
/**
* @author peter
@@ -14,7 +16,11 @@ import com.intellij.psi.impl.source.resolve.FileContextUtil;
public abstract class LiteFixture extends PlatformLiteFixture {
public static void setContext(final PsiFile psiFile, final PsiElement context) {
if (context != null) {
psiFile.putUserData(FileContextUtil.INJECTED_IN_ELEMENT, SmartPointerManager.getInstance(context.getProject()).createSmartPsiElementPointer(context));
setFileContext(psiFile, SmartPointerManager.getInstance(context.getProject()).createSmartPsiElementPointer(context));
}
}
public static void setFileContext(PsiFile psiFile, @Nullable SmartPsiElementPointer<?> pointer) {
psiFile.putUserData(FileContextUtil.INJECTED_IN_ELEMENT, pointer);
}
}