enriquepiatti / Magicento

PHPStorm plugin for Magento developers
115 stars 35 forks source link

[Magicento 3.3.6] TypeProvider contract violation? by class com.magicento.extensions.FactoryTypeProvider3 on $this->$method($args) #326

Closed pquerner closed 1 year ago

pquerner commented 1 year ago

Using Magicento 3.3.6 in PhpStorm Build #PS-231.8109.199 (2023.1) I get the following issue while opening file Varien/Object.php

com.intellij.diagnostic.PluginException: TypeProvider contract violation? by class com.magicento.extensions.FactoryTypeProvider3 on $this->$method($args) [Plugin: Magicento]
    at com.intellij.diagnostic.PluginProblemReporterImpl.createPluginExceptionByClass(PluginProblemReporterImpl.java:23)
    at com.intellij.diagnostic.PluginException.createByClass(PluginException.java:89)
    at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.lambda$getTypeFromAST$1(PhpTypeInfo.java:118)
    at com.intellij.openapi.util.RecursionManager$1.computePreventingRecursion(RecursionManager.java:112)
    at com.intellij.openapi.util.RecursionGuard.doPreventingRecursion(RecursionGuard.java:42)
    at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getTypeFromAST(PhpTypeInfo.java:80)
    at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getTypeCached(PhpTypeInfo.java:63)
    at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getType(PhpTypeInfo.java:45)
    at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.getType(PhpTypeInfo.java:31)
    at com.jetbrains.php.lang.psi.elements.impl.PhpReferenceImpl.getType(PhpReferenceImpl.java:251)
    at com.jetbrains.php.lang.psi.resolve.types.PhpType.add(PhpType.java:554)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.getType(FunctionImpl.java:520)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl$1.processReturnInstruction(FunctionImpl.java:352)
    at com.jetbrains.php.codeInsight.controlFlow.instructions.impl.PhpReturnInstructionImpl.process(PhpReturnInstructionImpl.java:21)
    at com.jetbrains.php.codeInsight.controlFlow.PhpControlFlowUtil.processSuccessors(PhpControlFlowUtil.java:240)
    at com.jetbrains.php.codeInsight.controlFlow.PhpControlFlowUtil.processSuccessors(PhpControlFlowUtil.java:220)
    at com.jetbrains.php.lang.psi.elements.impl.FunctionImpl.getInferredType(FunctionImpl.java:384)
    at com.jetbrains.php.lang.inspections.phpdoc.PhpReturnDocTypeMismatchInspection.checkPhpFunction(PhpReturnDocTypeMismatchInspection.java:62)
    at com.jetbrains.php.lang.inspections.phpdoc.PhpReturnDocTypeMismatchInspection$1.visitPhpMethod(PhpReturnDocTypeMismatchInspection.java:47)
    at com.jetbrains.php.lang.psi.elements.impl.MethodImpl.accept(MethodImpl.java:94)
    at com.jetbrains.php.lang.psi.elements.impl.PhpPsiElementImpl.accept(PhpPsiElementImpl.java:73)
    at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$10(InspectionRunner.java:323)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1102)
    at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$11(InspectionRunner.java:331)
    at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:229)
    at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:187)
    at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$12(InspectionRunner.java:337)
    at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:159)
    at com.intellij.util.AstLoadingFilter.forceAllowTreeLoading(AstLoadingFilter.java:151)
    at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$13(InspectionRunner.java:300)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:130)
    at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:119)
    at com.intellij.codeInsight.daemon.impl.InspectionRunner.lambda$processInOrder$14(InspectionRunner.java:300)
    at com.intellij.concurrency.JobLauncherImpl$1MyProcessQueueTask.lambda$call$0(JobLauncherImpl.java:299)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$executeProcessUnderProgress$13(CoreProgressManager.java:604)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:679)
    at com.intellij.openapi.progress.impl.CoreProgressManager.computeUnderProgress(CoreProgressManager.java:635)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:603)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
    at com.intellij.concurrency.JobLauncherImpl$1MyProcessQueueTask.call(JobLauncherImpl.java:284)
    at com.intellij.concurrency.JobLauncherImpl$1MyProcessQueueTask.call(JobLauncherImpl.java:272)
    at java.base/java.util.concurrent.ForkJoinTask$AdaptedCallable.exec(ForkJoinTask.java:1428)
    at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:373)
    at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1182)
    at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1655)
    at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1622)
    at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:165)
Caused by: java.lang.NullPointerException: Cannot invoke "String.equals(Object)" because "<local6>" is null
    at com.magicento.extensions.FactoryTypeProvider3.getTypeForMethodReference(FactoryTypeProvider3.java:255)
    at com.magicento.extensions.FactoryTypeProvider3.getTypeString(FactoryTypeProvider3.java:530)
    at com.magicento.extensions.FactoryTypeProvider3.getType(FactoryTypeProvider3.java:658)
    at com.jetbrains.php.lang.psi.resolve.types.PhpTypeInfo.lambda$getTypeFromAST$1(PhpTypeInfo.java:106)
    ... 44 more
enriquepiatti commented 1 year ago

Please try with version 3.3.8

pquerner commented 1 year ago

3.3.8 fixed this