You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I encountered an issue, where an accidental self reference in an associate statement lead to crashing the language server. Maybe this is not a classical bug, but it would be nice, if it is catched somehow.
The error stated that the maximum recursion depth exceeded. Since I did not know, where the error came from, I increased the depth limit. The error then showed that the language server failed to create a connection.
I my (relative) large program, the server did not responed and I could not use ay features, such as hover or jump to subroutines. Creating a minimal working example, it shows the error, but it still workes kind of. Try to hover over the associate(realsAndIntegers => realsAndIntegers) within this program:
module someTypes
implicit none
private
public integer_type
public realAndInteger_type
type integer_type
integer(4) :: a
end type integer_type
type realAndInteger_type
real(8) :: b
type(integer_type) :: c
end type realAndInteger_type
end module someTypes
module errorModule
use someTypes
implicit none
private
public error_inHere
contains
subroutine error_inHere(realsAndIntegers, integers)
type(realAndInteger_type), intent(inout) :: realsAndIntegers
type(integer_type), intent(inout) :: integers
! error here !
associate(realsAndIntegers => realsAndIntegers)
realsAndIntegers%b = 1.0
realsAndIntegers%c%a = 1
end associate
integers%a = 2
end subroutine error_inHere
end module errorModule
program error_main
use someTypes
use errorModule
implicit none
type(integer_type) :: my_integers
type(realAndInteger_type) :: my_realsAndIntegers
call error_inHere(my_realsAndIntegers, my_integers)
print *, my_integers%a
print *, my_realsAndIntegers%b, my_realsAndIntegers%c%a
end program error_main
The error is within the minimal example:
[Error - 10:45:31 AM] Request textDocument/hover failed.
Message: maximum recursion depth exceeded
Code: -32603
[object Object]
[WARN - 10:45:31] error handling request {'jsonrpc': '2.0', 'id': 1290, 'method': 'textDocument/hover', 'params': {'textDocument': {'uri': 'file:///home/jf/Desktop/temp/modernFortran_fail/error_main.F90'}, 'position': {'line': 31, 'character': 22}}}
Traceback (most recent call last):
File "/home/jf/.local/lib/python3.9/site-packages/fortls/langserver.py", line 173, in handle
resp = handler(request)
File "/home/jf/.local/lib/python3.9/site-packages/fortls/langserver.py", line 1112, in serve_hover
var_type: int = var_obj.get_type()
File "/home/jf/.local/lib/python3.9/site-packages/fortls/parsers/internal/variable.py", line 89, in get_type
return self.link_obj.get_type()
File "/home/jf/.local/lib/python3.9/site-packages/fortls/parsers/internal/variable.py", line 89, in get_type
return self.link_obj.get_type()
File "/home/jf/.local/lib/python3.9/site-packages/fortls/parsers/internal/variable.py", line 89, in get_type
return self.link_obj.get_type()
[Previous line repeated 992 more times]
RecursionError: maximum recursion depth exceeded
The error code produced with my actual program is a little bit longer and the location of the erorr was not shown.
The system is openSUSE Leap 15.4 with VSCode 1.92.4, fortls 3.1.2, Modern Fortran v3.4.2024090901 and gfortran 12.0 compiler. I am using the standard settings and do not have any special configurations, which may affect the error.
The text was updated successfully, but these errors were encountered:
I encountered an issue, where an accidental self reference in an associate statement lead to crashing the language server. Maybe this is not a classical bug, but it would be nice, if it is catched somehow.
The error stated that the maximum recursion depth exceeded. Since I did not know, where the error came from, I increased the depth limit. The error then showed that the language server failed to create a connection.
I my (relative) large program, the server did not responed and I could not use ay features, such as hover or jump to subroutines. Creating a minimal working example, it shows the error, but it still workes kind of. Try to hover over the associate(realsAndIntegers => realsAndIntegers) within this program:
The error is within the minimal example:
The error code produced with my actual program is a little bit longer and the location of the erorr was not shown.
The system is openSUSE Leap 15.4 with VSCode 1.92.4, fortls 3.1.2, Modern Fortran v3.4.2024090901 and gfortran 12.0 compiler. I am using the standard settings and do not have any special configurations, which may affect the error.
The text was updated successfully, but these errors were encountered: