Skip to content

Conversation

@devversion
Copy link
Member

Reworks the constructor signature check rule to take advantage of the TypeScript pre-emit diagnostics. This is necessary because there is no public API to check the relation of two types (e.g. checking if the super-call arguments are assignable to the actual constructor parameter signature)

This now means that the constructor checks respect type assignability (e.g. it won't throw incorrectly if a developer does something like:

class ExtendedPlatform extends Platform {}

new NativeDateAdapter(a, new ExtendedPlatform(...))

// Similarly it doesn't fail if an object is assignable to an interface (previously would fail):

new RippleRef(a, b, {persistent: true})

Reworks the constructor signature check rule to take advantage of the TypeScript pre-emit diagnostics. This is necessary because there is no public API to check the relation of two types (e.g. checking if the super-call arguments are assignable to the actual constructor parameter signature)

This now means that the constructor checks respect type assignability (e.g. it won't throw incorrectly if a developer does something like:

```ts
class ExtendedPlatform extends Platform {}

new NativeDateAdapter(a, new ExtendedPlatform(...))`
```
@devversion devversion added pr: merge safe target: major This PR is targeted for the next major release labels Sep 9, 2018
@devversion devversion requested a review from amcdnl as a code owner September 9, 2018 13:26
@googlebot googlebot added the cla: yes PR author has agreed to Google's Contributor License Agreement label Sep 9, 2018
Copy link
Member

@jelbourn jelbourn left a comment

Choose a reason for hiding this comment

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

LGTM

@jelbourn jelbourn added pr: lgtm action: merge The PR is ready for merge by the caretaker labels Sep 10, 2018
@jelbourn jelbourn merged commit c54c897 into angular:master Sep 10, 2018
@devversion devversion deleted the refactor/schematics-constructor-checks-assignability branch September 10, 2018 14:20
@angular-automatic-lock-bot
Copy link

This issue has been automatically locked due to inactivity.
Please file a new issue if you are encountering a similar or related problem.

Read more about our automatic conversation locking policy.

This action has been performed automatically by a bot.

@angular-automatic-lock-bot angular-automatic-lock-bot bot locked and limited conversation to collaborators Sep 9, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

action: merge The PR is ready for merge by the caretaker cla: yes PR author has agreed to Google's Contributor License Agreement target: major This PR is targeted for the next major release

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants