Skip to content

allow usage of 'super' in object literal expressions#6077

Merged
vladima merged 6 commits into
masterfrom
superInObjectLiterals
Dec 18, 2015
Merged

allow usage of 'super' in object literal expressions#6077
vladima merged 6 commits into
masterfrom
superInObjectLiterals

Conversation

@vladima
Copy link
Copy Markdown
Contributor

@vladima vladima commented Dec 12, 2015

also allow super properties to be used in computed property names in classes nested in methods of derived classes. Fixes #6038, #5441

Comment thread src/compiler/checker.ts Outdated
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Will be great to see example in comment

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

sure

Comment thread src/compiler/diagnosticMessages.json Outdated
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

"The 'super' keyword is only allowed in object literal expressions when targetting 'ES2015' or higher."

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

discussed offline

@DanielRosenwasser
Copy link
Copy Markdown
Member

Can we have a document highlights fourslash test for super in an object literal, even if it fails for now?

@vladima
Copy link
Copy Markdown
Contributor Author

vladima commented Dec 17, 2015

@DanielRosenwasser any other comments?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'm confused. Does super.method refer to __proto__.method, from the object literal, or to A.method, from the containing class?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Based on the changed code in the checker, I think it's proto.method.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

discussed offline

@sandersn
Copy link
Copy Markdown
Member

👍

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Nice test- does this b get resolved somehow as the below b?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I think super: any here, so probably not.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

currently type of super is any however i'd say that we should consider to use more elaborate type for both this and super in methods of object literal expressions (@rbuckton and myself have seen cases when this will be very useful during Migrate-a-thon)

@yuit
Copy link
Copy Markdown
Contributor

yuit commented Dec 17, 2015

lgtm

@DanielRosenwasser
Copy link
Copy Markdown
Member

👍

vladima added a commit that referenced this pull request Dec 18, 2015
allow usage of 'super' in object literal expressions
@vladima vladima merged commit bb1e5ab into master Dec 18, 2015
@vladima vladima deleted the superInObjectLiterals branch December 18, 2015 05:54
@microsoft microsoft locked and limited conversation to collaborators Jun 19, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants