mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-18 08:31:38 +00:00
Use only getDeclaredMethod/getDeclaredConstructor instead. The reason is that getMethod/getConstructor only finds public-API (public or protected on JVM) declarations, and to determine if a declaration is public-API in the class file we used isPublicInBytecode, which was trying to load annotations on the declaration to see if it was InlineOnly, and that required lots of time-consuming actions and worsened the stack trace (as can be seen e.g. in KT-27878). In fact, the implementation of Class.getMethod is not supposed to do anything complicated except loading annotations from each superclass and superinterface of the given class. Doing it in our codebase simplifies implementation and probably improves performance