Index access while building indexes
neuro159 opened this issue · 6 comments
We at JetBrains getting this reported to our Exception Analyser.
You're violating contract for
com.jetbrains.php.lang.psi.resolve.types.PhpTypeProvider2#getType
/**
- @param element to deduce type for - using only LOCAL info. THIS IS MOST CRUCIAL ASPECT TO FOLLOW
- @return type for element, null if no insight. You can return a custom signature here to be later decoded by method below.
*/
You cant query any index from this method. You should use type SIGNATURES, eg #M#CClassName.MethodName
Feel free to get back to us if you have troubles with the concept.
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:127)
at com.intellij.util.indexing.IndexAccessValidator.checkAccessingIndexDuringOtherIndexProcessing(IndexAccessValidator.java:37)
at com.intellij.psi.stubs.StubIndexImpl.doProcessStubs(StubIndexImpl.java:248)
at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:224)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:145)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:135)
at com.jetbrains.php.PhpIndexImpl.getByFQN(PhpIndexImpl.java:492)
at com.jetbrains.php.PhpIndexImpl.getClassesByFQN(PhpIndexImpl.java:507)
at com.jetbrains.php.PhpIndexImpl.getAnyByFQN(PhpIndexImpl.java:523)
at cz.juzna.intellij.nette.utils.ClassFinder.appendClasses(ClassFinder.java:61)
at cz.juzna.intellij.nette.utils.ClassFinder.appendClasses(ClassFinder.java:52)
at cz.juzna.intellij.nette.utils.ClassFinder.find(ClassFinder.java:35)
at cz.juzna.intellij.nette.utils.ClassFinder.getFromTypedElement(ClassFinder.java:85)
at cz.juzna.intellij.nette.utils.ComponentUtil.getFactoryMethods(ComponentUtil.java:44)
at cz.juzna.intellij.nette.typeProvider.ComponentTypeProvider.getType(ComponentTypeProvider.java:32)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:43)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:37)
at com.intellij.openapi.util.Computable$NotNullCachedComputable.compute(Computable.java:52)
at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getType(PhpTypeInfo.java:37)
at com.jetbrains.php.codeInsight.typeInference.PhpTypeInferenceUtil.getType(PhpTypeInferenceUtil.java:226)
at com.jetbrains.php.lang.psi.elements.impl.ArrayAccessExpressionImpl.getType(ArrayAccessExpressionImpl.java:39)
at com.jetbrains.php.lang.psi.resolve.types.PhpType.add(PhpType.java:153)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeAnalyserVisitor.addType(PhpTypeAnalyserVisitor.java:57)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeAnalyserVisitor.visitPhpAssignmentExpression(PhpTypeAnalyserVisitor.java:167)
at com.jetbrains.php.lang.psi.elements.impl.AssignmentExpressionImpl.accept(AssignmentExpressionImpl.java:37)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:51)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:37)
at com.intellij.openapi.util.Computable$NotNullCachedComputable.compute(Computable.java:52)
at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getType(PhpTypeInfo.java:37)
at com.jetbrains.php.lang.psi.elements.impl.PhpTypedElementImpl.getType(PhpTypedElementImpl.java:26)
at com.jetbrains.php.lang.psi.elements.impl.PhpExpressionImpl.getType(PhpExpressionImpl.java:59)
at com.jetbrains.php.lang.psi.resolve.types.PhpType.add(PhpType.java:153)
at com.jetbrains.php.lang.psi.stubs.PhpVariableElementType.createStub(PhpVariableElementType.java:37)
at com.jetbrains.php.lang.psi.stubs.PhpVariableElementType.createStub(PhpVariableElementType.java:25)
at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTreeFor(DefaultStubBuilder.java:60)
at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTree(DefaultStubBuilder.java:36)
at com.intellij.psi.impl.source.PsiFileImpl.calcStubTree(PsiFileImpl.java:1039)
at com.intellij.psi.stubs.StubProcessingHelperBase.processStubsInFile(StubProcessingHelperBase.java:75)
at com.intellij.psi.stubs.StubProcessingHelperBase.processStubsInFile(StubProcessingHelperBase.java:52)
at com.intellij.psi.stubs.StubIndexImpl$1.process(StubIndexImpl.java:232)
at com.intellij.psi.stubs.StubIndexImpl$StubIdListContainerAction.perform(StubIndexImpl.java:589)
at com.intellij.psi.stubs.StubIndexImpl$StubIdListContainerAction.perform(StubIndexImpl.java:577)
at com.intellij.util.indexing.ValueContainer.forEach(ValueContainer.java:81)
at com.intellij.psi.stubs.StubIndexImpl.doProcessStubs(StubIndexImpl.java:258)
at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:224)
at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:213)
at com.intellij.lang.javascript.psi.resolve.JSClassResolver.processElementsByQNameIncludingImplicit(JSClassResolver.java:212)
at com.intellij.lang.javascript.psi.resolve.JSReferenceExpressionResolver.processAllSymbols(JSReferenceExpressionResolver.java:187)
at com.intellij.lang.javascript.psi.resolve.JSReferenceExpressionResolver.resolveFromIndices(JSReferenceExpressionResolver.java:150)
at com.intellij.lang.javascript.psi.resolve.JSReferenceExpressionResolver.doResolve(JSReferenceExpressionResolver.java:108)
at com.intellij.lang.javascript.psi.resolve.JSResolveUtil.resolve(JSResolveUtil.java:2648)
at com.intellij.lang.javascript.psi.impl.JSReferenceExpressionImpl.multiResolve(JSReferenceExpressionImpl.java:425)
at com.intellij.lang.javascript.highlighting.JSSemanticHighlightingUtil.highlight(JSSemanticHighlightingUtil.java:101)
at com.intellij.lang.javascript.validation.JSAnnotatingVisitor.visitJSReferenceExpression(JSAnnotatingVisitor.java:696)
at com.intellij.lang.javascript.psi.impl.JSReferenceExpressionImpl.accept(JSReferenceExpressionImpl.java:415)
at com.intellij.lang.javascript.validation.JSAnnotator.annotate(JSAnnotator.java:17)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.runAnnotators(DefaultHighlightVisitor.java:135)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.visit(DefaultHighlightVisitor.java:99)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.runVisitors(GeneralHighlightingPass.java:351)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.access$100(GeneralHighlightingPass.java:62)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass$3.run(GeneralHighlightingPass.java:280)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:305)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.access$200(GeneralHighlightingPass.java:62)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass$4.run(GeneralHighlightingPass.java:311)
at com.intellij.codeInsight.daemon.impl.analysis.XmlHighlightVisitor.analyze(XmlHighlightVisitor.java:750)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:308)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.access$200(GeneralHighlightingPass.java:62)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass$4.run(GeneralHighlightingPass.java:311)
at com.intellij.codeInsight.daemon.impl.DefaultHighlightVisitor.analyze(DefaultHighlightVisitor.java:83)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.analyzeByVisitors(GeneralHighlightingPass.java:308)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectHighlights(GeneralHighlightingPass.java:277)
at com.intellij.codeInsight.daemon.impl.GeneralHighlightingPass.collectInformationWithProgress(GeneralHighlightingPass.java:216)
at com.intellij.codeInsight.daemon.impl.ProgressableTextEditorHighlightingPass.doCollectInformation(ProgressableTextEditorHighlightingPass.java:82)
at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:67)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1$1.run(PassExecutorService.java:444)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1183)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass$1.run(PassExecutorService.java:435)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:446)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:392)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.doRun(PassExecutorService.java:432)
at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:408)
at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:206)
at jsr166e.ForkJoinTask.doExec(ForkJoinTask.java:260)
at jsr166e.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:858)
at jsr166e.ForkJoinPool.scan(ForkJoinPool.java:1687)
at jsr166e.ForkJoinPool.runWorker(ForkJoinPool.java:1642)
at jsr166e.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:108)
Hi Alexey, thanks for the report. I'm sorry, I didn't see the contract in a decompiled code.
There is a problem that Nette uses offsetGet/offsetSet/__get/__set is some cases. So any array access like $foo['bar']
could be handled by nette so at least I need to find if the $foo
extends some class.
Otherwise I would have to take over many array and property accesses where I can't decide from a local info if it extends some class and analyze it later in the getDeclaredType. The issue is if I return anything from getType then PhpTypeInfo considers it as a successfull type detection. And it skips all others PhpTypeProvider2 as well as PhpTypeAnalyserVisitor (now I see there was a change in the code recently and it "only" skips PhpTypeAnalyserVisitor) . And if it shows up as a false detection (that it does not really extends required class) in the getDeclaredType, I can't do anything. Or am I missing something?
@neuro159 do you have any idea how to solve this? I've checked other phpstorm plugins which uses PhpTypeProvider2 and it's hacked.
e.g. https://github.com/pbyrne84/DynamicReturnTypePlugin/
There is a fallback to original type, but getBySignature has to return PhpNamedElement so there is a problem with scalars. And it is hacked using this dummy class which represents scalar types.
All this would have been solved if there was no early return in the PhpTypeInfo
if(!providedTypes.isEmpty()) {
return providedTypes;
}
but types from PhpTypeProvider2 and PhpTypeAnalyserVisitor were merged.
Thanks for your reply.
👍
This is still TOP reported issue in our EA for recent builds.
338 reports as of today for builds ending with last EAP 163.9166
Are you sure this is fixed?
Please contact me if you need help addressing the issue.
eg
Accessing 'php.class.shortName' during processing 'php.inheritors'. Nested different indices processing may cause deadlock
java.lang.Throwable
at com.intellij.openapi.diagnostic.Logger.error(Logger.java:132)
at com.intellij.util.indexing.IndexAccessValidator.checkAccessingIndexDuringOtherIndexProcessing(IndexAccessValidator.java:37)
at com.intellij.psi.stubs.StubIndexImpl.doProcessStubs(StubIndexImpl.java:349)
at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:325)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:146)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:135)
at com.jetbrains.php.PhpIndexImpl.getByName(PhpIndexImpl.java:565)
at com.jetbrains.php.PhpIndexImpl.getByFQN(PhpIndexImpl.java:545)
at com.jetbrains.php.PhpIndexImpl.getClassesByFQN(PhpIndexImpl.java:575)
at com.jetbrains.php.PhpIndexImpl.getAnyByFQN(PhpIndexImpl.java:591)
at cz.juzna.intellij.nette.utils.PhpIndexUtil.getByType(PhpIndexUtil.java:54)
at cz.juzna.intellij.nette.utils.PhpIndexUtil.getByType(PhpIndexUtil.java:38)
at cz.juzna.intellij.nette.utils.PhpIndexUtil.getByType(PhpIndexUtil.java:33)
at cz.juzna.intellij.nette.utils.PhpIndexUtil.getClasses(PhpIndexUtil.java:20)
at cz.juzna.intellij.nette.utils.ElementValueResolver.doResolve(ElementValueResolver.java:48)
at cz.juzna.intellij.nette.utils.ElementValueResolver.resolve(ElementValueResolver.java:22)
at cz.juzna.intellij.nette.utils.ElementValueResolver.resolve(ElementValueResolver.java:29)
at cz.juzna.intellij.nette.typeProvider.ComponentTypeProvider.getType(ComponentTypeProvider.java:51)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:49)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:39)
at com.intellij.openapi.util.Computable$NotNullCachedComputable.compute(Computable.java:52)
at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getType(PhpTypeInfo.java:39)
at com.jetbrains.php.codeInsight.typeInference.PhpTypeInferenceUtil.getType(PhpTypeInferenceUtil.java:244)
at com.jetbrains.php.lang.psi.elements.impl.ArrayAccessExpressionImpl.getType(ArrayAccessExpressionImpl.java:39)
at com.jetbrains.php.lang.psi.elements.impl.MemberReferenceImpl.getSignature(MemberReferenceImpl.java:210)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeAnalyserVisitor.visitPhpReference(PhpTypeAnalyserVisitor.java:90)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeAnalyserVisitor.visitPhpMethodReference(PhpTypeAnalyserVisitor.java:405)
at com.jetbrains.php.lang.psi.elements.impl.MethodReferenceImpl.accept(MethodReferenceImpl.java:29)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:46)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:39)
at com.intellij.openapi.util.Computable$NotNullCachedComputable.compute(Computable.java:52)
at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getType(PhpTypeInfo.java:39)
at com.jetbrains.php.lang.psi.elements.impl.PhpReferenceImpl.getType(PhpReferenceImpl.java:206)
at com.jetbrains.php.lang.psi.resolve.types.PhpType.add(PhpType.java:151)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeAnalyserVisitor.addType(PhpTypeAnalyserVisitor.java:55)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeAnalyserVisitor.visitPhpTernaryExpression(PhpTypeAnalyserVisitor.java:302)
at com.jetbrains.php.lang.psi.elements.impl.TernaryExpressionImpl.accept(TernaryExpressionImpl.java:62)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:46)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:39)
at com.intellij.openapi.util.Computable$NotNullCachedComputable.compute(Computable.java:52)
at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:112)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:68)
at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getType(PhpTypeInfo.java:39)
at com.jetbrains.php.lang.psi.elements.impl.PhpTypedElementImpl.getType(PhpTypedElementImpl.java:26)
at com.jetbrains.php.lang.psi.elements.impl.PhpExpressionImpl.getType(PhpExpressionImpl.java:59)
at com.jetbrains.php.lang.psi.resolve.types.PhpType.add(PhpType.java:151)
at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.visitReturn(FunctionImpl.java:216)
at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.scanTree(FunctionImpl.java:241)
at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.getInferredType(FunctionImpl.java:181)
at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.getLocalType(FunctionImpl.java:145)
at com.jetbrains.php.lang.psi.stubs.PhpFunctionElementType.createStub(PhpFunctionElementType.java:31)
at com.jetbrains.php.lang.psi.stubs.PhpFunctionElementType.createStub(PhpFunctionElementType.java:20)
at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.createStub(DefaultStubBuilder.java:113)
at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.visitNode(DefaultStubBuilder.java:88)
at com.intellij.psi.stubs.DefaultStubBuilder$StubBuildingWalkingVisitor.buildStubTree(DefaultStubBuilder.java:83)
at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTreeFor(DefaultStubBuilder.java:58)
at com.intellij.psi.stubs.DefaultStubBuilder.buildStubTree(DefaultStubBuilder.java:39)
at com.intellij.psi.impl.source.PsiFileImpl.calcStubTree(PsiFileImpl.java:1072)
at com.intellij.psi.stubs.StubProcessingHelperBase.processStubsInFile(StubProcessingHelperBase.java:76)
at com.intellij.psi.stubs.StubProcessingHelperBase.processStubsInFile(StubProcessingHelperBase.java:52)
at com.intellij.psi.stubs.StubIndexImpl$2.process(StubIndexImpl.java:333)
at com.intellij.psi.stubs.StubIndexImpl$StubIdListContainerAction.perform(StubIndexImpl.java:684)
at com.intellij.psi.stubs.StubIndexImpl$StubIdListContainerAction.perform(StubIndexImpl.java:672)
at com.intellij.util.indexing.ValueContainer.forEach(ValueContainer.java:81)
at com.intellij.psi.stubs.StubIndexImpl.doProcessStubs(StubIndexImpl.java:359)
at com.intellij.psi.stubs.StubIndexImpl.processElements(StubIndexImpl.java:325)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:146)
at com.intellij.psi.stubs.StubIndex.getElements(StubIndex.java:135)
at com.jetbrains.php.PhpIndexImpl.getDirectSubclasses(PhpIndexImpl.java:269)
at com.jetbrains.php.lang.findUsages.PhpConstructorReferenceSearcher.searchClassAndChildren(PhpConstructorReferenceSearcher.java:94)
at com.jetbrains.php.lang.findUsages.PhpConstructorReferenceSearcher.processQuery(PhpConstructorReferenceSearcher.java:55)
at com.jetbrains.php.lang.findUsages.PhpConstructorReferenceSearcher.processQuery(PhpConstructorReferenceSearcher.java:40)
at com.intellij.openapi.application.QueryExecutorBase.execute(QueryExecutorBase.java:95)
at com.intellij.util.ExecutorsQuery.processResults(ExecutorsQuery.java:45)
at com.intellij.util.AbstractQuery.forEach(AbstractQuery.java:79)
at com.intellij.util.MergeQuery.processSubQuery(MergeQuery.java:85)
at com.intellij.util.MergeQuery.forEach(MergeQuery.java:57)
at com.intellij.util.UniqueResultsQuery.process(UniqueResultsQuery.java:66)
at com.intellij.util.UniqueResultsQuery.forEach(UniqueResultsQuery.java:56)
at com.jetbrains.php.lang.psi.PhpPsiUtil.hasReferencesInSearchScope(PhpPsiUtil.java:512)
at com.jetbrains.php.codeInsight.PhpCodeInsightUtil.isUnusedInternal(PhpCodeInsightUtil.java:989)
at com.jetbrains.php.codeInsight.PhpCodeInsightUtil.lambda$isUnused$6(PhpCodeInsightUtil.java:954)
at java.util.stream.MatchOps$1MatchSink.accept(MatchOps.java:90)
at java.util.HashMap$ValueSpliterator.tryAdvance(HashMap.java:1641)
at java.util.stream.ReferencePipeline.forEachWithCancel(ReferencePipeline.java:126)
at java.util.stream.AbstractPipeline.copyIntoWithCancel(AbstractPipeline.java:498)
at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:485)
at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:230)
at java.util.stream.MatchOps$MatchOp.evaluateSequential(MatchOps.java:196)
at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.allMatch(ReferencePipeline.java:454)
at com.jetbrains.php.codeInsight.PhpCodeInsightUtil.isUnused(PhpCodeInsightUtil.java:954)
at com.jetbrains.php.lang.inspections.PhpUnusedAliasInspection$1.visitPhpUse(PhpUnusedAliasInspection.java:32)
at com.jetbrains.php.lang.psi.elements.impl.PhpUseImpl.accept(PhpUseImpl.java:49)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:81)
at com.intellij.codeInspection.InspectionEngine.createVisitorAndAcceptElements(InspectionEngine.java:69)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.runToolOnElements(LocalInspectionsPass.java:280)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitPriorityElementsAndInit$3(LocalInspectionsPass.java:249)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:123)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1061)
at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$0(ApplierCompleter.java:96)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:568)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:519)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:54)
at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:106)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:91)
at java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:731)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)