Open XFreeZer0 opened 3 years ago
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 :)
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)