Skip to content

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

Merged
RomainMuller merged 8 commits intomasterfrom
rmuller/erase-non-exported-base-classes
Apr 3, 2019
Merged

feat(jsii): Erase un-exported base classes instead of prohibiting those#425
RomainMuller merged 8 commits intomasterfrom
rmuller/erase-non-exported-base-classes

Conversation

@RomainMuller
Copy link
Copy Markdown
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
Copy Markdown
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

Comment thread packages/jsii/lib/assembler.ts Outdated
Comment thread packages/jsii/lib/assembler.ts Outdated
Comment thread packages/jsii/lib/assembler.ts Outdated
@RomainMuller
Copy link
Copy Markdown
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