Open
Description
The current approximations for java.lang.StringBuilder
and java.lang.StringBuffer
use an instance of java.lang.String
as an internal storage and the java.lang.String#concat
method for approximating java.lang.AbstractStringBuilder#append
methods. Such approximation is still very complex for symbolic analysis, taking into account that the java.lang.String#concat
uses the non-trivial method java.lang.StringConcatHelper#simpleConcat
(that includes even jdk.internal.misc.Unsafe
invocations`).
Instead of current approximations, it is suggested to use a hand-written dynamic array of characters for simpler approximations. For reference, use org.utbot.engine.overrides.strings.UtStringBuilder
implementation in UTBotJava.