Open
Description
looksLikeForwarderOrFactoryOrTrivial
identifies forwarders, factories and trivial methods. Currently that method doesn't know a field read or a method call targets a public or private field or method. It approximates this by trating getfield
as private, getstatic
as public, invokespecial
as private, invokestatic
as public.
So we should fix the following miscategorizations:
- should exclude forwarders that use
invokestatic
to call a private method (such forwarders should not be inlined, as this creates more private callsites, which should be avoided) - should include methods that read a public (non-static) field (such a method can be inlined. currently field accessors are excluded)
- should exclude methods that read a private static field (should not be inlined).