satamas / fortran-plugin

Fortran language plugin for IntelliJ Idea

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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 :)