Интересно, достаточно ли умен JVM / javac, чтобы превратить
// This line...
string a = foo();
string foo()
{
return bar();
}
string bar()
{
return some-complicated-string computation;
}
в
string a = bar();
или удалить ненужный вызов foo () в случае выпуска (из-за недоступности кода):
string a = foo(bar());
// bar is the same
...
string foo(string b)
{
if (debug) do-something-with(b);
}
Я считаю, что да для первый пример и «не очень уверен» для второго, но может ли кто-нибудь дать мне несколько указателей / ссылок, чтобы подтвердить это?