* Adding support for @implements.
* Fixed code review issues for @implements, added some more tests.
* Fixed declaration emit for @interface
* Improved getImplementsTypes to not cache the results since it is only used once.
* Removed unnecessary checks from getImplementsTypes
* Changed outlining to better outline ES5 classes (functions assigned to prototype)
* Changed outlining to better outline ES5 classes (properties assigned to functions)
* Fixed some small bugs when merging es5 class nodes. Added tests for new es5 class outline.
* Added support for interlaced ES5 classes (where an ES5 class's members are mixed with other declarations).
* Fixed crash in outline when assigning {} to the prototype.
* Added support for nested es5 declarations.
* Added support for prototype assignment for es5 classes.
- is contextually typed (because otherwise no type annotation for the variable would have been generated anyway)
- is not generic
- doesn't have parameters inferred as any
If these conditions are met, we add missing parameters type and we add this parameter to the function.
1. When calling a non-callable expression the error span is on the call target not on the whole call
2. When calling a method, the error for overload resolution now includes the arguments (this was previously regressed by #31414)
* Improved error messages when indexing an object type with a literal string, a literal string union or a string.
* Added more specific message when using the indexing operator with an incompatible index argument.
* Fixed spelling and error message.