Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(jsii): Erase un-exported base classes instead of prohibiting those #425

Merged
merged 8 commits into from
Apr 3, 2019

Conversation

RomainMuller
Copy link
Contributor

When an exported class extends an un-exported class, merge the declarations
of the un-exported base into the exported one, and replace the base class
relationship with the base's own base (recursively until an exported base is
found, or no further base class is declared - in which case the exported class
will not have a base class at all).

Declarations from the erased base class(es) will be ignored if there is another
declaration with the same name and type in the exported type (or another
erased base class that is closer to the exported type in the inheritance chain).

Fixes #417

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.

When an exported class extends an un-exported class, merge the declarations
of the un-exported base into the exported one, and replace the base class
relationship with the base's own base (recursively until an exported base is
found, or no further base class is declared - in which case the exported class
will not have a base class at all).

Declarations from the erased base class(es) will be ignored if there is another
declaration with the same name and type in the exported type (or another
erased base class that is closer to the exported type in the inheritance chain).

Fixes #417
@RomainMuller RomainMuller requested a review from a team as a code owner April 3, 2019 09:24
Copy link
Contributor

@eladb eladb left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! A bit of nit picking around readability of the code

packages/jsii/lib/assembler.ts Outdated Show resolved Hide resolved
packages/jsii/lib/assembler.ts Outdated Show resolved Hide resolved
packages/jsii/lib/assembler.ts Outdated Show resolved Hide resolved
@RomainMuller
Copy link
Contributor Author

Holding off from merging this until #415 lands, so as to avoid creating unnecessary merge conflicts.

@RomainMuller RomainMuller self-assigned this Apr 3, 2019
@RomainMuller RomainMuller changed the title feat(jsii): Erase un-exported base classes feat(jsii): Erase un-exported base classes instead of prohibiting those Apr 3, 2019
@RomainMuller RomainMuller merged commit d006f5c into master Apr 3, 2019
@RomainMuller RomainMuller deleted the rmuller/erase-non-exported-base-classes branch April 3, 2019 14:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Erase non-exported base classes
2 participants