From ec70b47b98487fb8fd9364fcb3ce3b672247d06c Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Fri, 18 Nov 2016 20:06:13 +0300 Subject: [PATCH] [groovy] drop members cache on subtreeChanged() too (IDEA-CR-15963) --- .../impl/statements/typedef/GrTypeDefinitionImpl.java | 6 ++++++ .../typedef/GrTypeDefinitionMembersCache.java | 10 ++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrTypeDefinitionImpl.java b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrTypeDefinitionImpl.java index d985fc845f49..290e0f6a5e92 100644 --- a/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrTypeDefinitionImpl.java +++ b/plugins/groovy/groovy-psi/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrTypeDefinitionImpl.java @@ -295,6 +295,12 @@ public abstract class GrTypeDefinitionImpl extends GrStubElementBase { + private final SimpleModificationTracker myTreeChangeTracker = new SimpleModificationTracker(); private final T myDefinition; private final GrCodeMembersProvider 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 { myCodeMembersProvider = provider; } + public void dropCaches() { + myTreeChangeTracker.incModificationCount(); + } + public GrTypeDefinition[] getCodeInnerClasses() { return CachedValuesManager.getCachedValue(myDefinition, () -> CachedValueProvider.Result.create( myCodeMembersProvider.getCodeInnerClasses(myDefinition), myDependencies