pbyrne84 / DynamicReturnTypePlugin

135 stars 7 forks source link

Exception: kotlin.String cannot be cast to java.lang.String #36

Closed liayn closed 9 years ago

liayn commented 9 years ago

PHPStorm 8.0.2

This exception occurs several times, but I couldn't find out what the preconditions are.

kotlin.String cannot be cast to java.lang.String
kotlin.TypeCastException: kotlin.String cannot be cast to java.lang.String
    at kotlin.KotlinPackage$StringsJVM$603079af.replace(StringsJVM.kt:123)
    at kotlin.KotlinPackage.replace(Unknown Source)
    at com.ptby.dynamicreturntypeplugin.config.ClassMethodConfigKt.formatBeforeLookup(ClassMethodConfigKt.kt:41)
    at com.ptby.dynamicreturntypeplugin.index.VariableAnalyser.formatWithMask(VariableAnalyser.kt:52)
    at com.ptby.dynamicreturntypeplugin.index.VariableAnalyser.getClassNameFromVariableLookup(VariableAnalyser.kt:44)
    at com.ptby.dynamicreturntypeplugin.signatureconversion.CustomSignatureProcessor.processSignature(CustomSignatureProcessor.kt:50)
    at com.ptby.dynamicreturntypeplugin.signatureconversion.CustomSignatureProcessor.getBySignature(CustomSignatureProcessor.kt:28)
    at com.ptby.dynamicreturntypeplugin.DynamicReturnTypeProvider.processSingleSignature(DynamicReturnTypeProvider.kt:126)
    at com.ptby.dynamicreturntypeplugin.DynamicReturnTypeProvider.getBySignature(DynamicReturnTypeProvider.kt:106)
    at com.jetbrains.php.PhpIndexImpl.getBySignatureInternal(PhpIndexImpl.java:398)
    at com.jetbrains.php.PhpIndexImpl.getBySignature(PhpIndexImpl.java:284)
    at com.jetbrains.php.PhpIndexImpl.completeType(PhpIndexImpl.java:80)
    at com.jetbrains.php.lang.psi.resolve.types.PhpType.global(PhpType.java:418)
    at com.jetbrains.php.lang.inspections.PhpVoidFunctionResultUsedInspection.analyzeCall(PhpVoidFunctionResultUsedInspection.java:47)
    at com.jetbrains.php.lang.inspections.PhpVoidFunctionResultUsedInspection.access$000(PhpVoidFunctionResultUsedInspection.java:21)
    at com.jetbrains.php.lang.inspections.PhpVoidFunctionResultUsedInspection$1.visitPhpMethodReference(PhpVoidFunctionResultUsedInspection.java:39)
    at com.jetbrains.php.lang.psi.elements.impl.MethodReferenceImpl.accept(MethodReferenceImpl.java:31)
    at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:80)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass$4.process(LocalInspectionsPass.java:313)
    at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass$4.process(LocalInspectionsPass.java:308)
    at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:122)
    at com.intellij.concurrency.ApplierCompleter.access$000(ApplierCompleter.java:44)
    at com.intellij.concurrency.ApplierCompleter$1.run(ApplierCompleter.java:85)
    at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1143)
    at com.intellij.concurrency.ApplierCompleter$2.run(ApplierCompleter.java:94)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.a(ProgressManagerImpl.java:281)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.a(ProgressManagerImpl.java:278)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:233)
    at com.intellij.concurrency.ApplierCompleter.a(ApplierCompleter.java:106)
    at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:82)
    at jsr166e.CountedCompleter.exec(CountedCompleter.java:684)
    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:109)
pbyrne84 commented 9 years ago

Looks like null safety interop was given hard to understand errors. I think this was a null pointer exception.

I added a guard in the jar https://github.com/pbyrne84/DynamicReturnTypePlugin/raw/master/deploy/DynamicReturnTypePlugin.zip

Sorry it took so long

liayn commented 9 years ago

Thanks for the updated plugin. I'll keep testing this for a while and will report back here. (might take some days as well though)

pbyrne84 commented 9 years ago

I'll mark this as closed, feel free to give me a shout if it didn't work.

I have never got this but I have been doing very little php lately (mostly Scala) so my monkey hands have been away from from causing errors in my plugin.