From 8b15b847bda2f02dda5190c93d853809164ad182 Mon Sep 17 00:00:00 2001 From: peter Date: Tue, 7 Jun 2011 23:14:29 +0200 Subject: [PATCH] cache groovy extends/implements list types --- .../typedef/GrTypeDefinitionImpl.java | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrTypeDefinitionImpl.java b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrTypeDefinitionImpl.java index 8fc93ff18cd8..65d989f6b3f1 100644 --- a/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrTypeDefinitionImpl.java +++ b/plugins/groovy/src/org/jetbrains/plugins/groovy/lang/psi/impl/statements/typedef/GrTypeDefinitionImpl.java @@ -29,6 +29,9 @@ import com.intellij.psi.impl.source.tree.LeafPsiElement; import com.intellij.psi.impl.source.tree.java.ClassElement; import com.intellij.psi.scope.PsiScopeProcessor; import com.intellij.psi.stubs.IStubElementType; +import com.intellij.psi.util.CachedValueProvider; +import com.intellij.psi.util.CachedValuesManager; +import com.intellij.psi.util.PsiModificationTracker; import com.intellij.ui.RowIcon; import com.intellij.util.ArrayUtil; import com.intellij.util.IncorrectOperationException; @@ -281,12 +284,22 @@ public abstract class GrTypeDefinitionImpl extends GrStubElementBase() { + @Override + public Result compute() { + return Result.create(GrClassImplUtil.getExtendsListTypes(GrTypeDefinitionImpl.this), PsiModificationTracker.JAVA_STRUCTURE_MODIFICATION_COUNT); + } + }); } @NotNull public PsiClassType[] getImplementsListTypes() { - return GrClassImplUtil.getImplementsListTypes(this); + return CachedValuesManager.getManager(getProject()).getCachedValue(this, new CachedValueProvider() { + @Override + public Result compute() { + return Result.create(GrClassImplUtil.getImplementsListTypes(GrTypeDefinitionImpl.this), PsiModificationTracker.JAVA_STRUCTURE_MODIFICATION_COUNT); + } + }); } @Nullable