Infinite recursion in valadoc
I have an error domain E
. It has a method of return type E
and this seemingly causes infinite recursion in SymbolResolver
.
errordomain FooError {
BAD;
static void foo () throws FooError {
}
}
void main () {
}
This repeats at least thousands of times until the stack space ends and a segfault occurs:
#7206 0x00007ffff7f2404e in valadoc_api_visitor_visit_error_domain (self=0x555557f8ced0, item=0x55555810b0b0) at api/visitor.c:371
#7207 0x00007ffff7f077bd in valadoc_api_error_domain_real_accept (base=0x55555810b0b0, visitor=0x555557f8ced0) at api/errordomain.c:223
#7208 0x00007ffff7f0f20d in valadoc_api_node_accept (self=0x55555810b0b0, visitor=0x555557f8ced0) at api/node.c:216
#7209 0x00007ffff7f108e7 in valadoc_api_node_accept_all_children (self=0x55555810dc80, visitor=0x555557f8ced0, filtered=0) at api/node.c:966
#7210 0x00005555555678e8 in valadoc_symbol_resolver_real_visit_method (base=0x555557f8ced0, item=0x55555810dc80) at symbolresolver.c:1022
#7211 0x00007ffff7f23eb9 in valadoc_api_visitor_visit_method (self=0x555557f8ced0, item=0x55555810dc80) at api/visitor.c:311
#7212 0x00007ffff7f0d408 in valadoc_api_method_real_accept (base=0x55555810dc80, visitor=0x555557f8ced0) at api/method.c:546
#7213 0x00007ffff7f0f20d in valadoc_api_node_accept (self=0x55555810dc80, visitor=0x555557f8ced0) at api/node.c:216
#7214 0x00007ffff7f108e7 in valadoc_api_node_accept_all_children (self=0x55555810b0b0, visitor=0x555557f8ced0, filtered=0) at api/node.c:966
#7215 0x0000555555567c42 in valadoc_symbol_resolver_real_visit_error_domain (base=0x555557f8ced0, item=0x55555810b0b0) at symbolresolver.c:1118
The compiler accepts the code without a trace of a problem.
Just for the record, Valadoc versions 0.44.1.95-59eea9
and 0.44.6
both contain the issue. The stack trace comes from 0.44.1.95-59eea9
. If it's necessary, I can reproduce it in latest master version.
Edited by Rico Tzschichholz