Skip to content

Fix instantiated generic mixin declaration emit#19144

Merged
weswigham merged 5 commits into
microsoft:masterfrom
weswigham:fix-mixin-emit
Oct 16, 2017
Merged

Fix instantiated generic mixin declaration emit#19144
weswigham merged 5 commits into
microsoft:masterfrom
weswigham:fix-mixin-emit

Conversation

@weswigham
Copy link
Copy Markdown
Member

Alternative to #19087, pulling the minimal amount in to fix this issue and identifying the secondary locations which needed fixing.

Fixes #18545

@weswigham weswigham requested a review from mhegazy October 12, 2017 22:14
@weswigham
Copy link
Copy Markdown
Member Author

@mhegazy

Comment thread src/compiler/checker.ts Outdated
context.encounteredError = true;
return undefined;
}
else if (context.flags & NodeBuilderFlags.WriteClassExpressionAsTypeLiteral &&
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.

Where does this ever get passed in?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Ahhhhh..... Nowhere (internally), apparently. Until the swap to the node builder in the other PR, we only use the symbol display builder to print classes as object literals.

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.

So this should not be in this change? it should be in the symbolDisplayBuilder change instead...

Copy link
Copy Markdown
Contributor

@mhegazy mhegazy left a comment

Choose a reason for hiding this comment

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

Please remove the WriteClassExpressionAsTypeLiteral from this PR and include it in the symbol display builder one.

@weswigham weswigham merged commit aea7e9a into microsoft:master Oct 16, 2017
@weswigham weswigham deleted the fix-mixin-emit branch October 16, 2017 21:18
mhegazy added a commit that referenced this pull request Oct 16, 2017
* unspoof call expression start in iife

* add test

* cleanup

* rename variables

* Use checkExpression to resolve symbols

* Actual fix + test

* revert method rename

* explain changes and remove spurious assignment

* add tests

* verified that new tests show no regressions against master

* remove newline

* Refactor JSDoc types to Typescript types

When the caret is on a Typescript declaration that has no type, but does
have a JSDoc annotation with a type, this refactor will add the
Typescript equivalent of the JSDoc type.

Notes:

1. This doesn't delete the JSDoc comment or delete parts of it. In fact,
due to bugs in trivia handling, it sometimes duplicates the comment.
These bugs are tracked in #18626.

2. As a bonus, when `noImplicitAny: true`, this shows up as a code fix in VS Code
whenever there is a no-implicit-any error. With `noImplicityAny: false`,
this code must be invoked via the refactoring command.

* Test:refactor JSDoc types to Typescript types

* Change refactoring name and description

* Move filenames to match refactoring rename

* Transform jsdoc types in the refactor, not emitter

The emitter now understands JSDoc types but emits them in the original
format.

* Correctly transform jsdoc parameter types

And give a better name for rest params

* Convert all JSDoc parameters and return types of functions

* Add and update jsdoc annotation refactoring tests

* Convert @template tag to type parameters in refactor

* Test refactor of JSDoc @template tag

* Fix duplicated JSDoc comments

Incorporate suppressLeadingAndTrailingTrivia just added by @amcasey.

* Create source files lazily in tests (#19143)

* LEGO: check in for master to temporary branch.

* JSDoc->type refactor:Renames+improve never handling

* return more Debug.fails instead of undefined.

* Fix spacing lint

* In getContextuallyTypedParameterType, skip a `this` parameter when counting parameter index (#19155)

* LEGO: check in for master to temporary branch.

* Added test case.

* Create truly unique names for tagged template strings.

* Accepted baselines.

* Update generated files (#19177)

* Properly handle mapped types with 'keyof any'

* LEGO: check in for master to temporary branch.

* Mapped type { [P in any]: T } should yield { [x: string]: T }

* Add tests

* Accept new baselines

* LEGO: check in for master to temporary branch.

* Add getCompilerOptions method to project
Fixes #19218

* In convertFunctionToEs6Class.ts, share code for getting symbol (#19160)

* Fix for-in emit under systemjs (#19223)

* Support 'package.json' not in package root (#19133)

* Support 'package.json' not in package root

* Test "foo/@bar"

* More tests, and don't use "types" from the root package.json if not loading the root module

* Add comments about why we need two methods that return compilerOptions

* Fix instantiated generic mixin declaration emit (#19144)

* Fix #18545, dont use declared type of class expression

* Accept API Baselines

* Add thus far unused flag from node builder

* Accept baseline update

* Do not reduce subtypes of awaited union type

* Fix generated name scope when emitting async functions

* LEGO: check in for master to temporary branch.

* Add release-2.6 to covered branches
@microsoft microsoft locked and limited conversation to collaborators Jun 14, 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.

Wrong declaration file for generic class factory

3 participants