mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
java: make resolveAllQualifiers go through RecursionManager to take advantage of its memoization (IDEA-236961)
GitOrigin-RevId: 1bfe281cbfaa8c6423a12313daf6f72aae738846
This commit is contained in:
committed by
intellij-monorepo-bot
parent
bfb501fbfd
commit
0b3f27a0af
+1
-1
@@ -244,7 +244,7 @@ public class PsiReferenceExpressionImpl extends ExpressionPsiElement implements
|
||||
if (!(element instanceof PsiReferenceExpressionImpl)) return;
|
||||
PsiReferenceExpressionImpl chainedQualifier = (PsiReferenceExpressionImpl)element;
|
||||
RecursionGuard.StackStamp stamp = RecursionManager.markStack();
|
||||
ResolveResult[] res = resolveCache.resolveWithCaching(chainedQualifier, INSTANCE, false, false, containingFile);
|
||||
ResolveResult[] res = resolveCache.resolveWithCaching(chainedQualifier, INSTANCE, true, false, containingFile);
|
||||
if (stamp.mayCacheNow()) {
|
||||
ourQualifierCache.get().put(chainedQualifier, res);
|
||||
}
|
||||
|
||||
+40
@@ -19,6 +19,46 @@ class MyTest {
|
||||
|
||||
void m(List<Foo> list){
|
||||
add<caret>All(list.stream().map(it -> new Builder()
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
.put(it.getBar())
|
||||
|
||||
+1
-1
@@ -75,7 +75,7 @@ public class InferencePerformanceTest extends LightDaemonAnalyzerTestCase {
|
||||
PlatformTestUtil.startPerformanceTest("long qualifier chain", 12000, this::doTest).usesAllCPUCores().assertTiming();
|
||||
}
|
||||
|
||||
public void _testLongQualifierChainInsideLambdaWithOverloads() {
|
||||
public void testLongQualifierChainInsideLambdaWithOverloads() {
|
||||
PlatformTestUtil.startPerformanceTest("long qualifier chain", 12000, () -> {
|
||||
configureByFile(BASE_PATH + "/" + getTestName(false) + ".java");
|
||||
PsiMethodCallExpression callExpression =
|
||||
|
||||
Reference in New Issue
Block a user