Before the change, only static members were inherited.
After the change, all members except constructors are inherited.
GitOrigin-RevId: 11655dae1a9bb8d2fe2f381ebe5d262c0f6f33eb
`@ApiStatus.Internal` acts on members, making them effectively `@ApiStatus.Internal` as well.
GitOrigin-RevId: 3dfd62df44a248460af613f915e8ff88f8ba63fe
These methods exist to support
- covariant return type overrides;
- generic overrides;
- overrides of `void` methods with methods returning `java/lang/Void` in Kotlin.
Such methods are called only through supertype invocations, and supertypes are already listed in the dump.
The main reason for avoiding these in dumps: Java allows extending a public class `B` from a package-local class `A`.
`B` can override a method of `A` with a covariant return type.
In this case, a synthetic bridge is generated in `B` with the return type from method in `A`.
If the method return type in `A` is also a package-local class `C`, this would mean `C` is leaked by the API surface of `B`.
Instead, we consider such bridges not a part of the API. For a concrete example, see:
`com.intellij.tools.apiDump.testData.inheritFromPackageLocal.JPackageLocalClass.packagePrivateMethodWithPackagePrivateReturnType`.
Another reason has the same root cause: Java allows such class inheritance.
A public class `B` which extends package-local class `A` "opens" up _all_ public/protected methods of `A` to the outer world.
In subsequent commits, this is going to be reflected in the dump by copying the API methods of package-local `A` into public `B`.
We don't want to copy the bridges, which a part of `A` and can be only accessed through supertype of `A`,
to avoid false positive leaking API errors.
GitOrigin-RevId: 2aecf62ad18f4ed6458927ccbd86f8066bea4751
This change is failing with the following error, which is fixed in the subsequent commits:
```
'intellij.tools.apiDump.testData' Private classes are exposed through API:
com/intellij/tools/apiDump/testData/inheritFromPackageLocal/JPackageLocalClass <- b com/intellij/tools/apiDump/testData/inheritFromPackageLocal/JPublicInheritor#packagePrivateMethodWithPackagePrivateReturnType ()Lcom/intellij/tools/apiDump/testData/inheritFromPackageLocal/JPackageLocalClass;
```
GitOrigin-RevId: fb532eadb637d776185cf58612ed0a6e9299ec45
Other changes in this commit:
- `resolveApiElement` added.
- `resolveApiField` and `resolveApiMethod` work on reference level
=> they should not go into base classes because the reference has the exact class name.
- `ApiWatcherBundle` added.
- `ApiElementNodeRenderer` can now render symbolic reference's presentable name.
GitOrigin-RevId: 2d7a694971dc25f2c737d314ed422a2c174a395c