Skip to content

Regression hiding nested internal Kotlin types #854

Closed
@jpobst

Description

@jpobst

Context: #827
Context: #826

As noted in the PR #827, there is some "weirdness" with what appears in the InnerClasses collection. It turns out this is due to a misunderstanding of what the InnerClasses collection contains.

Per the docs:

If a class has members that are classes or interfaces, its constant_pool table (and hence its InnerClasses attribute) 
must refer to each such member, even if that member is not otherwise mentioned by the class. **These rules 
imply that a nested class or interface member will have InnerClasses information for each enclosing class and 
for each immediate member.**

That is, a PagedList$Config$Builder$Companion class lists its grandparent type PagedList$Config and parent type PagedList$Config$Builder as InnerClasses.

The change made in PR #827 loops through InnerClasses, marking them as internal, assuming they are all nested types. This is causing us to hide parent types when we are trying to hide child types.

This will require more investigation and the deadline for 16.11 is ~now, so we're just going to revert the original commit for now.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugComponent does not function as intendedgeneratorIssues binding a Java library (generator, class-parse, etc.)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions