enriquepiatti / Magicento

PHPStorm plugin for Magento developers
115 stars 35 forks source link

[Magento 1] String index out of range #273

Open theroch opened 6 years ago

theroch commented 6 years ago

If I open a specific observer class in my project I get the following exception: String index out of range: -24 java.lang.StringIndexOutOfBoundsException: String index out of range: -24 at java.lang.String.substring(String.java:1967) at com.magicento.extensions.FactoryTypeProvider2.getClassNameFromSignature(FactoryTypeProvider2.java:191) at com.magicento.extensions.FactoryTypeProvider2.getTypeForForeachVar(FactoryTypeProvider2.java:474) at com.magicento.extensions.FactoryTypeProvider2.getType(FactoryTypeProvider2.java:591) at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:63) at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:52) at com.intellij.openapi.util.Computable$NotNullCachedComputable.compute(Computable.java:56) at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:113) at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getType(PhpTypeInfo.java:52) at com.jetbrains.php.lang.psi.elements.impl.VariableImpl.getInferredType(VariableImpl.java:553) at com.jetbrains.php.codeInsight.typeInference.PhpTypeAnalyzerProcessor.processAccessInstruction(PhpTypeAnalyzerProcessor.java:33) at com.jetbrains.php.codeInsight.typeInference.PhpVariableInferredTypeAnalyzerProcessor.processAccessVariableInstruction(PhpVariableInferredTypeAnalyzerProcessor.java:38) at com.jetbrains.php.codeInsight.controlFlow.instructions.impl.PhpAccessVariableInstructionImpl.process(PhpAccessVariableInstructionImpl.java:35) at com.jetbrains.php.codeInsight.controlFlow.PhpControlFlowUtil.processPredecessors(PhpControlFlowUtil.java:119) at com.jetbrains.php.codeInsight.controlFlow.PhpControlFlowUtil.processPredecessorsIgnoreInitialBackEdges(PhpControlFlowUtil.java:98) at com.jetbrains.php.lang.psi.resolve.types.PhpTypeAnalyserVisitor.visitPhpVariable(PhpTypeAnalyserVisitor.java:155) at com.jetbrains.php.lang.psi.elements.impl.VariableImpl.accept(VariableImpl.java:119) at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:58) at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo$1.internalCompute(PhpTypeInfo.java:52) at com.intellij.openapi.util.Computable$NotNullCachedComputable.compute(Computable.java:56) at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:113) at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getType(PhpTypeInfo.java:52) at com.jetbrains.php.codeInsight.typeInference.PhpTypeInferenceUtil.getType(PhpTypeInferenceUtil.java:256) at com.jetbrains.php.lang.psi.elements.impl.VariableImpl.getType(VariableImpl.java:541) at com.jetbrains.php.lang.psi.elements.impl.MemberReferenceImpl.resolveGlobal(MemberReferenceImpl.java:137) at com.jetbrains.php.lang.psi.elements.impl.MethodReferenceImpl.resolveGlobal(MethodReferenceImpl.java:84) at com.jetbrains.php.lang.psi.elements.impl.PhpReferenceImpl$1.resolve(PhpReferenceImpl.java:145) at com.jetbrains.php.lang.psi.elements.impl.PhpReferenceImpl$1.resolve(PhpReferenceImpl.java:142) at com.intellij.psi.impl.source.resolve.ResolveCache.lambda$resolve$0(ResolveCache.java:142) at com.intellij.openapi.util.RecursionManager$2.doPreventingRecursion(RecursionManager.java:113) at com.intellij.psi.impl.source.resolve.ResolveCache.resolve(ResolveCache.java:141) at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:166) at com.intellij.psi.impl.source.resolve.ResolveCache.resolveWithCaching(ResolveCache.java:158) at com.jetbrains.php.lang.psi.elements.impl.PhpReferenceImpl.multiResolve(PhpReferenceImpl.java:137) at com.jetbrains.php.lang.psi.elements.impl.PhpReferenceImpl.resolve(PhpReferenceImpl.java:123) at com.jetbrains.php.ui.PhpParameterHintManager.<init>(PhpParameterHintManager.java:46) at com.jetbrains.php.ui.PhpInlayParameterHintsProvider.getParameterHints(PhpInlayParameterHintsProvider.kt:44) at com.intellij.codeInsight.hints.ParameterHintsPass.a(ParameterHintsPass.java:109) at com.intellij.codeInsight.hints.ParameterHintsPass.a(ParameterHintsPass.java:68) at java.lang.Iterable.forEach(Iterable.java:75) at com.intellij.codeInsight.hints.ParameterHintsPass.doCollectInformation(ParameterHintsPass.java:68) at com.intellij.codeHighlighting.TextEditorHighlightingPass.collectInformation(TextEditorHighlightingPass.java:70) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.a(PassExecutorService.java:438) at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1160) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.b(PassExecutorService.java:431) at com.intellij.openapi.progress.impl.CoreProgressManager.a(CoreProgressManager.java:548) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:493) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:94) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.c(PassExecutorService.java:430) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.d(PassExecutorService.java:406) at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:142) at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:249) at com.intellij.codeInsight.daemon.impl.PassExecutorService$ScheduledPass.run(PassExecutorService.java:404) at com.intellij.concurrency.JobLauncherImpl$VoidForkJoinTask$1.exec(JobLauncherImpl.java:165) 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)

Some other observers doesn't throw this exception and are working fine. Magicento version: 3.1.4 phpStorm version: 2017.2.4