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

Interface is defined twice if it comes from an erased base #496

Closed
eladb opened this issue May 6, 2019 · 0 comments · Fixed by #497 or #508
Closed

Interface is defined twice if it comes from an erased base #496

eladb opened this issue May 6, 2019 · 0 comments · Fixed by #497 or #508

Comments

@eladb
Copy link
Contributor

eladb commented May 6, 2019

Repro:

export interface IMyInterface {}
class Base implements IMyInterface {}
export class Derived extends Base implements IMyInterface {}

This results in Derived having IMyInterface defined twice in the spec.

eladb pushed a commit that referenced this issue May 6, 2019
When processing interfaces from multiple declaration sites (e.g.
when a base class is erased), we need to make sure that only
include every interface once.

Fixes #496
@eladb eladb closed this as completed in #497 May 6, 2019
eladb pushed a commit that referenced this issue May 6, 2019
When processing interfaces from multiple declaration sites (e.g.
when a base class is erased), we need to make sure that only
include every interface once.

Fixes #496
RomainMuller added a commit that referenced this issue May 21, 2019
### Bug Fixes

* **assembler:** handle unknown types without crashing ([#501](#501)) ([7ba1aab](7ba1aab))
* **jsii:** deduplicate interfaces ([#497](#497)) ([05f5189](05f5189)), closes [#496](#496)
* **jsii-diff:** catch exception if type disappeared from other assembly ([#504](#504)) ([8d11900](8d11900))
* **jsii-diff:** correctly handle assignability of type unions ([#500](#500)) ([04c061e](04c061e))
* **jsii-diff:** don't fail on new packages ([#502](#502)) ([d1d0633](d1d0633))

### Features

* **jsii:** protect against prohibited member names ([#506](#506)) ([2848f76](2848f76))

### BREAKING CHANGES

* **jsii:** The `equals` and `hashCode` method names may no longer be used on JSII classes and interfaces, due to their
  colliding with "special meaning" methods in other languages (Java, .NET, ...).
RomainMuller added a commit that referenced this issue May 21, 2019
### Bug Fixes

* **assembler:** handle unknown types without crashing ([#501](#501)) ([7ba1aab](7ba1aab))
* **jsii:** deduplicate interfaces ([#497](#497)) ([05f5189](05f5189)), closes [#496](#496)
* **jsii-diff:** catch exception if type disappeared from other assembly ([#504](#504)) ([8d11900](8d11900))
* **jsii-diff:** correctly handle assignability of type unions ([#500](#500)) ([04c061e](04c061e))
* **jsii-diff:** don't fail on new packages ([#502](#502)) ([d1d0633](d1d0633))

### Features

* **jsii:** protect against prohibited member names ([#506](#506)) ([2848f76](2848f76))

### BREAKING CHANGES

* **jsii:** The `equals` and `hashCode` method names may no longer be used on JSII classes and interfaces, due to their
  colliding with "special meaning" methods in other languages (Java, .NET, ...).
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 a pull request may close this issue.

1 participant