From b8c3db5d1bba27f5f0b61e43d2ccbfb596bb5dcc Mon Sep 17 00:00:00 2001 From: Mikhail Golubev Date: Mon, 11 Jan 2021 17:15:00 +0300 Subject: [PATCH] PY-40997 Use qualified function reference in the default test case It seems that using boto3.client() is more common than just client(), and qualifier triggers extra performance problems when we try to infer its type. GitOrigin-RevId: 87d2abf227d91a4f18568b50e76f09ec0cea47ef --- ...MultiResolveResults.py => mainQualified.py} | 0 .../overloads/{main.py => mainUnqualified.py} | 0 .../PyOverloadsProcessingPerformanceTest.java | 18 +++++++++--------- 3 files changed, 9 insertions(+), 9 deletions(-) rename python/testData/performance/overloads/{overloadsNotDuplicatedInQualifiedReferenceMultiResolveResults.py => mainQualified.py} (100%) rename python/testData/performance/overloads/{main.py => mainUnqualified.py} (100%) diff --git a/python/testData/performance/overloads/overloadsNotDuplicatedInQualifiedReferenceMultiResolveResults.py b/python/testData/performance/overloads/mainQualified.py similarity index 100% rename from python/testData/performance/overloads/overloadsNotDuplicatedInQualifiedReferenceMultiResolveResults.py rename to python/testData/performance/overloads/mainQualified.py diff --git a/python/testData/performance/overloads/main.py b/python/testData/performance/overloads/mainUnqualified.py similarity index 100% rename from python/testData/performance/overloads/main.py rename to python/testData/performance/overloads/mainUnqualified.py diff --git a/python/testSrc/com/jetbrains/python/PyOverloadsProcessingPerformanceTest.java b/python/testSrc/com/jetbrains/python/PyOverloadsProcessingPerformanceTest.java index 81c2f440a545..f412e1696528 100644 --- a/python/testSrc/com/jetbrains/python/PyOverloadsProcessingPerformanceTest.java +++ b/python/testSrc/com/jetbrains/python/PyOverloadsProcessingPerformanceTest.java @@ -62,27 +62,27 @@ public class PyOverloadsProcessingPerformanceTest extends PyTestCase { } public void testComputingResultTypeWithCodeAnalysisContext() { - PyCallExpression call = configureAndGetCallExprUnderCaret("main.py"); + PyCallExpression call = configureAndGetCallExprUnderCaret("mainQualified.py"); TypeEvalContext context = TypeEvalContext.codeAnalysis(myFixture.getProject(), myFixture.getFile()); assertType("int", call, context); } public void testComputingResultTypeWithUserInitiatedContext() { - PyCallExpression call = configureAndGetCallExprUnderCaret("main.py"); + PyCallExpression call = configureAndGetCallExprUnderCaret("mainQualified.py"); TypeEvalContext context = TypeEvalContext.userInitiated(myFixture.getProject(), myFixture.getFile()); assertType("int", call, context); } public void testNavigatingToDefinition() { - PyCallExpression call = configureAndGetCallExprUnderCaret("main.py"); - PsiElement element = GotoDeclarationAction.findTargetElement(myFixture.getProject(), myFixture.getEditor(), call.getTextOffset()); + configureAndGetCallExprUnderCaret("mainQualified.py"); + PsiElement element = GotoDeclarationAction.findTargetElement(myFixture.getProject(), myFixture.getEditor(), myFixture.getCaretOffset()); assertInstanceOf(element, PyFunction.class); } public void testQuickDocumentationRendering() { - PyCallExpression call = configureAndGetCallExprUnderCaret("main.py"); + configureAndGetCallExprUnderCaret("mainQualified.py"); DocumentationProvider docProvider = new PythonDocumentationProvider(); - PsiElement leaf = PsiTreeUtil.getDeepestFirst(call); + PsiElement leaf = myFixture.getFile().findElementAt(myFixture.getCaretOffset()); DocumentationManager docManager = DocumentationManager.getInstance(myFixture.getProject()); PsiElement docTarget = docManager.findTargetElement(myFixture.getEditor(), leaf.getTextOffset(), myFixture.getFile(), leaf); doPerformanceTestResettingCaches("Rendering Quick Documentation", 100, () -> { @@ -96,13 +96,13 @@ public class PyOverloadsProcessingPerformanceTest extends PyTestCase { myFixture.copyDirectoryToProject("", ""); myFixture.enableInspections(PyUnresolvedReferencesInspection.class); doPerformanceTestResettingCaches("Pass of Unresolved References inspection", 100, () -> { - myFixture.configureByFile("main.py"); + myFixture.configureByFile("mainQualified.py"); myFixture.checkHighlighting(); }); } public void testOverloadsNotDuplicatedInReferenceMultiResolveResults() { - PyCallExpression call = configureAndGetCallExprUnderCaret("main.py"); + PyCallExpression call = configureAndGetCallExprUnderCaret("mainUnqualified.py"); PyReferenceExpression refExpr = assertInstanceOf(call.getCallee(), PyReferenceExpression.class); ResolveResult[] resolveResults = refExpr.getReference().multiResolve(false); // Overloads, lower-priority imported name and the function itself. @@ -110,7 +110,7 @@ public class PyOverloadsProcessingPerformanceTest extends PyTestCase { } public void testOverloadsNotDuplicatedInQualifiedReferenceMultiResolveResults() { - PyCallExpression call = configureAndGetCallExprUnderCaret(getTestName(true) + ".py"); + PyCallExpression call = configureAndGetCallExprUnderCaret("mainQualified.py"); PyReferenceExpression expr = assertInstanceOf(call.getCallee(), PyReferenceExpression.class); ResolveResult[] resolveResults = expr.getReference().multiResolve(false); // Overloads only.