Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update ShadowWrangler to iterate through methods using getDeclaredMet…
…hods Previously, in ShadowWrangler, shadow method lookup was performed using ShadowClass.findDeclaredMethod. It was called once to look for an exact match of a shadow method, and sometimes called again to check for a looseSignatures match. There are plans to add new features and capabilities to the way that shadow methods are matched. For example: * looseSignatures being replaced with a more minimal @classname("internal.type") annotation. * If the signature of a method changes across SDK levels, we could introduce different method names that map to the same method name. However, to search for methods that cannot be matched using ShadowClass.findDeclaredMethod, it is required to iterate over all candidate methods using ShadowClass.findDeclaredMethods. There were some questions about the performance of using ShadowClass.findDeclaredMethods + iteration. However, after some preliminary benchmarks, this approach is surprisingly approximately 25% faster than using ShadowClass.findDeclaredMethod. It is perhaps due to the internal caching of ShadowClass.findDeclaredMethods. With this change, it will be possible to perform more advanced filtering and searching for methods. For #8841 PiperOrigin-RevId: 619979740
- Loading branch information