At this moment we have a problem: RContext#resolve can go into stackoverflow:
at net.ranides.assira.reflection.impl.RContext.resolve0(RContext.java:74)
at net.ranides.assira.reflection.impl.RContext.resolve(RContext.java:62)
at net.ranides.assira.reflection.impl.RContext.resolve0(RContext.java:74)
at net.ranides.assira.reflection.impl.RContext.resolve(RContext.java:62)
at net.ranides.assira.reflection.impl.RContext.resolve0(RContext.java:74)
at net.ranides.assira.reflection.impl.RContext.resolve(RContext.java:62)
at net.ranides.assira.reflection.impl.RContext.resolve0(RContext.java:74)
At this moment we have a problem: RContext#resolve can go into stackoverflow:
```
at net.ranides.assira.reflection.impl.RContext.resolve0(RContext.java:74)
at net.ranides.assira.reflection.impl.RContext.resolve(RContext.java:62)
at net.ranides.assira.reflection.impl.RContext.resolve0(RContext.java:74)
at net.ranides.assira.reflection.impl.RContext.resolve(RContext.java:62)
at net.ranides.assira.reflection.impl.RContext.resolve0(RContext.java:74)
at net.ranides.assira.reflection.impl.RContext.resolve(RContext.java:62)
at net.ranides.assira.reflection.impl.RContext.resolve0(RContext.java:74)
```
It is hard to say, what is cause of the problem, but it can be reproduced in AClassTest#testRecursiveString
At this moment we inserted workaround inside AClass#toString, but it causes that nested types can't be converted to correct string.
If we declare parameterized type Something<T> and then declare nested type Something<Something<Something<T>>>, we have infinite recursion.
Somewhere under the hood, toString converts parameters to strings.
To do so, it has to create parameters list first.
Parameter list is created lazily, and every parameter creates result using context:typeinfo.
typeinfo calls resolveTV
IContext somewhere
It is hard to say, what is cause of the problem, but it can be reproduced in AClassTest#testRecursiveString
At this moment we inserted workaround inside AClass#toString, but it causes that nested types can't be converted to correct string.
If we declare parameterized type `Something<T>` and then declare nested type `Something<Something<Something<T>>>`, we have infinite recursion.
Somewhere under the hood, toString converts parameters to strings.
To do so, it has to create parameters list first.
Parameter list is created lazily, and every parameter creates result using `context:typeinfo`.
typeinfo calls resolveTV
IContext somewhere
At this moment we have a problem: RContext#resolve can go into stackoverflow:
It is hard to say, what is cause of the problem, but it can be reproduced in AClassTest#testRecursiveString
At this moment we inserted workaround inside AClass#toString, but it causes that nested types can't be converted to correct string.
If we declare parameterized type
Something<T>and then declare nested typeSomething<Something<Something<T>>>, we have infinite recursion.Somewhere under the hood, toString converts parameters to strings. To do so, it has to create parameters list first. Parameter list is created lazily, and every parameter creates result using
context:typeinfo.typeinfo calls resolveTV
IContext somewhere