mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
[groovy] drop members cache on subtreeChanged() too (IDEA-CR-15963)
This commit is contained in:
+6
@@ -295,6 +295,12 @@ public abstract class GrTypeDefinitionImpl extends GrStubElementBase<GrTypeDefin
|
||||
return myCache.getCodeMethods();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void subtreeChanged() {
|
||||
myCache.dropCaches();
|
||||
super.subtreeChanged();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public PsiMethod[] getConstructors() {
|
||||
|
||||
+8
-2
@@ -15,6 +15,7 @@
|
||||
*/
|
||||
package org.jetbrains.plugins.groovy.lang.psi.impl.statements.typedef;
|
||||
|
||||
import com.intellij.openapi.util.SimpleModificationTracker;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiClassType;
|
||||
import com.intellij.psi.PsiMethod;
|
||||
@@ -30,16 +31,17 @@ import org.jetbrains.plugins.groovy.lang.psi.util.GrClassImplUtil;
|
||||
import org.jetbrains.plugins.groovy.transformations.TransformationResult;
|
||||
import org.jetbrains.plugins.groovy.transformations.TransformationUtilKt;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
import java.util.Collections;
|
||||
|
||||
import static com.intellij.psi.util.PsiModificationTracker.JAVA_STRUCTURE_MODIFICATION_COUNT;
|
||||
|
||||
public class GrTypeDefinitionMembersCache<T extends GrTypeDefinition> {
|
||||
|
||||
private final SimpleModificationTracker myTreeChangeTracker = new SimpleModificationTracker();
|
||||
private final T myDefinition;
|
||||
private final GrCodeMembersProvider<? super T> myCodeMembersProvider;
|
||||
private final Collection<?> myDependencies = Collections.singletonList(JAVA_STRUCTURE_MODIFICATION_COUNT);
|
||||
private final Collection<?> myDependencies = Arrays.asList(myTreeChangeTracker, JAVA_STRUCTURE_MODIFICATION_COUNT);
|
||||
|
||||
public GrTypeDefinitionMembersCache(@NotNull T definition) {
|
||||
this(definition, BodyCodeMembersProvider.INSTANCE);
|
||||
@@ -50,6 +52,10 @@ public class GrTypeDefinitionMembersCache<T extends GrTypeDefinition> {
|
||||
myCodeMembersProvider = provider;
|
||||
}
|
||||
|
||||
public void dropCaches() {
|
||||
myTreeChangeTracker.incModificationCount();
|
||||
}
|
||||
|
||||
public GrTypeDefinition[] getCodeInnerClasses() {
|
||||
return CachedValuesManager.getCachedValue(myDefinition, () -> CachedValueProvider.Result.create(
|
||||
myCodeMembersProvider.getCodeInnerClasses(myDefinition), myDependencies
|
||||
|
||||
Reference in New Issue
Block a user