Exception in plugin Fortran(2020.1)
XFreeZer0 opened this issue · comments
java.lang.NumberFormatException: For input string: "numlon"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.base/java.lang.Integer.parseInt(Integer.java:652)
at java.base/java.lang.Integer.parseInt(Integer.java:770)
at org.jetbrains.fortran.lang.types.infer.FortranInferenceContext.inferFortranArrayType(TypeInference.kt:432)
at org.jetbrains.fortran.lang.types.infer.FortranInferenceContext.processTypeDeclarationStatement(TypeInference.kt:38)
at org.jetbrains.fortran.lang.types.infer.FortranInferenceContext.infer(TypeInference.kt:28)
at org.jetbrains.fortran.lang.types.infer.TypeInferenceKt.inferTypesIn(TypeInference.kt:10)
at org.jetbrains.fortran.lang.types.ExtensionsKt$inference$1.compute(Extensions.kt:12)
at com.intellij.psi.util.CachedValuesManager$1.compute(CachedValuesManager.java:153)
at com.intellij.psi.impl.PsiCachedValueImpl.doCompute(PsiCachedValueImpl.java:54)
at com.intellij.util.CachedValueBase.lambda$getValueWithLock$1(CachedValueBase.java:235)
at com.intellij.openapi.util.RecursionManager$1.doPreventingRecursion(RecursionManager.java:112)
at com.intellij.openapi.util.RecursionManager.doPreventingRecursion(RecursionManager.java:71)
at com.intellij.util.CachedValueBase.getValueWithLock(CachedValueBase.java:236)
at com.intellij.psi.impl.PsiCachedValueImpl.getValue(PsiCachedValueImpl.java:43)
at com.intellij.util.CachedValuesManagerImpl.getCachedValue(CachedValuesManagerImpl.java:76)
at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:150)
at com.intellij.psi.util.CachedValuesManager.getCachedValue(CachedValuesManager.java:120)
at org.jetbrains.fortran.lang.types.ExtensionsKt.getInference(Extensions.kt:11)
at org.jetbrains.fortran.ide.inspections.FortranTypeCheckInspection.collectDiagnostics(FortranTypeCheckInspection.kt:16)
at org.jetbrains.fortran.ide.inspections.FortranTypeCheckInspection.access$collectDiagnostics(FortranTypeCheckInspection.kt:10)
at org.jetbrains.fortran.ide.inspections.FortranTypeCheckInspection$buildVisitor$1.visitMainProgram(FortranTypeCheckInspection.kt:12)
at org.jetbrains.fortran.lang.psi.impl.FortranMainProgramImpl.accept(FortranMainProgramImpl.java:27)
at org.jetbrains.fortran.lang.psi.impl.FortranMainProgramImpl.accept(FortranMainProgramImpl.java:31)
at com.intellij.codeInspection.InspectionEngine.acceptElements(InspectionEngine.java:65)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitRestElementsAndCleanup$6(LocalInspectionsPass.java:319)
at com.intellij.util.AstLoadingFilter.lambda$toComputable$2(AstLoadingFilter.java:168)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:126)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:115)
at com.intellij.util.AstLoadingFilter.disallowTreeLoading(AstLoadingFilter.java:110)
at com.intellij.codeInsight.daemon.impl.LocalInspectionsPass.lambda$visitRestElementsAndCleanup$7(LocalInspectionsPass.java:319)
at com.intellij.concurrency.ApplierCompleter.execAndForkSubTasks(ApplierCompleter.java:149)
at com.intellij.openapi.application.impl.ApplicationImpl.tryRunReadAction(ApplicationImpl.java:1110)
at com.intellij.concurrency.ApplierCompleter.lambda$wrapInReadActionAndIndicator$1(ApplierCompleter.java:105)
at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:629)
at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:581)
at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:60)
at com.intellij.concurrency.ApplierCompleter.wrapInReadActionAndIndicator(ApplierCompleter.java:117)
at com.intellij.concurrency.ApplierCompleter.lambda$compute$0(ApplierCompleter.java:96)
at com.intellij.openapi.application.impl.ReadMostlyRWLock.executeByImpatientReader(ReadMostlyRWLock.java:170)
at com.intellij.openapi.application.impl.ApplicationImpl.executeByImpatientReader(ApplicationImpl.java:182)
at com.intellij.concurrency.ApplierCompleter.compute(ApplierCompleter.java:96)
at java.base/java.util.concurrent.CountedCompleter.exec(CountedCompleter.java:746)
at java.base/java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:290)
at java.base/java.util.concurrent.ForkJoinPool$WorkQueue.topLevelExec(ForkJoinPool.java:1020)
at java.base/java.util.concurrent.ForkJoinPool.scan(ForkJoinPool.java:1656)
at java.base/java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1594)
at java.base/java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:183)
Hello! Thank you for reporting this bug.
@satamas The simple program to reproduce the bug is:
PROGRAM ArrayProg
INTEGER, PARAMETER :: SIZE = 10
REAL, dimension(SIZE) :: ARRAY
DO i = 1, SIZE
ARRAY(i) = i**2
END DO
DO i = 1, SIZE
write(*,*) ARRAY(i)
END DO
END
The shape-spec is an expression. It may contain named constants or a full expression.
REAL, DIMENSION(5+5) :: A
is also correct.
By the way, if we use "DIMENSION" instead of "dimension" type inference for the "ARRAY" entity does not work at all and we do not have the exception. It is another bug :)