Commit Graph

30686 Commits

Author SHA1 Message Date
Alexander T
ebac7ec08f fix(39421): omit prefix text for rest binding element (#39433) 2020-07-08 13:25:28 -07:00
Alexander T
8795458d6d fix(39440): show QF for abstract classes with methods which include 'this' parameter (#39465) 2020-07-08 12:36:42 -07:00
Sheetal Nandi
305c58b03a Remove unnecessary assert (#39483)
This assert made no sense sine we donot use the value from existing structureIsUsed at all
Fixes #36718
2020-07-08 11:02:07 -07:00
csigs
a101935d34 LEGO: Merge pull request 39501
LEGO: Merge pull request 39501
2020-07-08 09:11:31 -07:00
csigs
ab79eb2dc2 LEGO: check in for master to temporary branch. 2020-07-08 16:10:43 +00:00
TypeScript Bot
3f731c2c12 Update user baselines (#39220)
Co-authored-by: typescript-bot <typescript@microsoft.com>
2020-07-08 09:04:47 -07:00
Nathan Shively-Sanders
53a756ea63 Type this in more constructor functions (#39447)
* Type `this` in more constructor functions

Previously,  `this: this` in constructor functions only when there was
an explicit `@constructor` tag on the function. Now, `this: this` for
any function that's known to be a constructor function.

This improves completions inside constructor functions; also note that
previously the compiler *did* type `this: this` inside methods of constructor
functions, so this fix makes us more consistent. This is reflected in
the large number of baselines that improve.

The fix is a simple switch to `isJSConstructor`, which is the standard
way to detect constructor functions. I'm not sure why the original PR
didn't use this method.

I remember discussing this limitation in the original bug, #25979, and
I guess I decided that it made sense. But I was heavily primed by the bug's
framing of the problem in terms of `noImplicitThis`, which *should*
require an explicit `@constructor` tag.

With better typing comes better detection of `@readonly` assignment; I
had to fix the readonly detection code to use `isJSConstructor` as well.

* Remove `Add @class tag` fix for noImplicitThis.

The new rules mean that it never applies. It's possible that it should
apply to functions like

```js
function f() {
  this.init()
}
```

In which `init` is never defined, but I think this program is incomplete
enough that not offering the fix is fine.

* Fix precedence of `@this`

Previously, both `@class` and `@this` in a jsdoc would cause the `@this`
annotation to be ignored. This became a worse problem with this PR,
because `this` is correctly typed even without the annotation.

This commit makes sure that `@this` is checked first and used if
present.
2020-07-08 08:44:17 -07:00
csigs
030f5e8056 LEGO: Merge pull request 39497
LEGO: Merge pull request 39497
2020-07-08 03:11:29 -07:00
csigs
41ab50be26 LEGO: check in for master to temporary branch. 2020-07-08 10:10:42 +00:00
csigs
8a39ae6f85 LEGO: Merge pull request 39493
LEGO: Merge pull request 39493
2020-07-07 21:11:43 -07:00
csigs
371089bdf3 LEGO: check in for master to temporary branch. 2020-07-08 04:10:45 +00:00
Anders Hejlsberg
8c6b85835f Properly handle rest parameters in function declarations with @type annotations (#39473)
* Properly handle rest parameters in function declarations with @type annotations

* Add tests
2020-07-07 16:35:37 -07:00
Wesley Wigham
d2b32b422f Ensure type/namespaceish statics are included in the list of namespace merge members (#38920)
* Ensure type/namespaceish statics are included in the list of namespace merge members

* Simplit into two lines

* Update baseline post-merge
2020-07-07 16:28:09 -07:00
Andrew Branch
2d6d5db33a Fix getTypeAtLocation for dotted implements clauses (#39363)
* Fix getTypeAtLocation for dotted implements clauses

* Fix typo
2020-07-07 16:17:07 -07:00
Daniel Rosenwasser
b7193a6a44 Add workflow_dispatch to our nightly publish script. (#39485)
* Add workflow_dispatch to our nightly publish script.

* Update nightly.yaml
2020-07-07 16:11:14 -07:00
Wesley Wigham
4f375552b5 Fix crash in decorator metadata calculation when serializing template literal type nodes (#39481) 2020-07-07 15:29:52 -07:00
Wesley Wigham
62b4377acf Fix test semantic merge conflict between #39348 and #39130 (#39478) 2020-07-07 14:30:58 -07:00
Sheetal Nandi
c08c059dae Dont include auto type reference directives (#39472) 2020-07-07 13:58:53 -07:00
Ron Buckton
b100680a3e Fix for relating covered discriminants in unions (#39393) 2020-07-07 13:11:55 -07:00
Andrew Branch
0c75021860 Process type nodes in codefixes/refactors for auto-imports recursively (#39130)
* Process type nodes for auto-imports recursively

* Rename function
2020-07-07 13:11:23 -07:00
Nathan Shively-Sanders
1814e2a5c4 Mark @typedef as a type declaration (#39468)
* Mark @typedef as a type declaration

This is only important right now for marking uses of deprecated tags due
to the way that deprecated type references are computed. But I'm
surprised it hasn't caused problems elsewhere.

Fixes #39466

* Also mark @callback and @enum

Requires making name lookup in isTypeDeclarationName smarter, but this
is only used by services, so shouldn't be too performance sensitive.
2020-07-07 10:37:52 -07:00
Alexander T
6b493f2048 fix(23871): change insertNodeAfter to replaceNode to avoid extra newlines (#38045) 2020-07-07 12:54:03 -04:00
csigs
5b4cbc90f7 LEGO: Merge pull request 39467
LEGO: Merge pull request 39467
2020-07-07 09:11:30 -07:00
csigs
9d0e213f47 LEGO: check in for master to temporary branch. 2020-07-07 16:10:44 +00:00
Orta Therox
6ebd73c84f Don't narrow against unions of constructor functions with instanceof (#38099)
* WIP

* Only narrows when the union is not all constructors
2020-07-07 11:34:10 -04:00
Nathan Shively-Sanders
9a65658b28 Parse *= separately in types (#39457)
* Parse *= separately in types

Previously, when the scanner produced `*=` as a single token, the type
parser ran special-case code to produce an "optional all type", which
only makes sense when the `=` really should be attached to the `*`. This
is often not the case.

The correct solution, which I missed when I first wrote this code, is to
have the scanner go back and produce a separate `=` token, which is what
this PR does.

* add test from #38551

* we ❤️ semicolons
2020-07-07 08:30:42 -07:00
csigs
c12d431d7e LEGO: Merge pull request 39460
LEGO: Merge pull request 39460
2020-07-06 21:11:37 -07:00
csigs
4f72ae2638 LEGO: check in for master to temporary branch. 2020-07-07 04:10:42 +00:00
Alexander T
2a92a6ea91 fix(39332): handle quotes preference in interface method signatures (#39348) 2020-07-06 17:00:35 -07:00
Wenlu Wang
453365284c Avoid check for union keys (#39314) 2020-07-06 15:01:05 -07:00
Nathan Shively-Sanders
0d84f210b7 In JS, assignment to void 0 isn't a declaration (#39452)
Previously, property assignments with `void 0` initialisers were treated
like any other values. But this causes us to choke when checking our own
commonjs emit. This is something that happens by mistake a fair amount,
so this PR goes back to treating these assignments as normal
assignments.

This should allow us to check our own emit in loose cases without
harming other code bases, since `void 0` is rarely written by hand.

Note that other errors still happen: noImplicitAny forbids
accessing undeclared properties on object literals, and strictNullChecks
forbids assigning `undefined` to properties with a different type.
However, this change is enough to unblock compilation with
`strictNullChecks: false`.
2020-07-06 14:00:12 -07:00
Orta Therox
17d8b02796 Retain the original eslint arg order (#39450) 2020-07-06 16:02:56 -04:00
Daniel Rosenwasser
64696225ab Merge pull request #39418 from a-tarasyuk/feat/25259-diagnostic
feat(25259): Better error report for equals instead of colon in object literals / change diagnostic message
2020-07-06 12:13:49 -07:00
Daniel Rosenwasser
77bf2045d8 Merge pull request #39379 from a-tarasyuk/bug/39346
fix(39346): Intelligent code completion not working in child class with composited base interface
2020-07-06 11:59:30 -07:00
Orta Therox
3593c28692 Adds a script for hooking up dev builds of TS to the playground (#38859) 2020-07-06 12:27:52 -04:00
Orta Therox
d462fb2fb9 Split the GH actions CI into multiple stages (#39210)
* Split the GH actions CI into multiple stages

* Add the -- for npm

* Improve the CI reports

* Use stylish formatting on CI

* Break TSC instead

* Try add the problem register for TSC only on node 12

* Fix GH Actions syntax maybe
2020-07-06 12:24:33 -04:00
csigs
d66db619ef LEGO: Merge pull request 39448
LEGO: Merge pull request 39448
2020-07-06 09:11:30 -07:00
csigs
222e18770d LEGO: check in for master to temporary branch. 2020-07-06 16:10:37 +00:00
ShuiRuTian
f29e03eea5 autocomplete works for const assertion. (#39412)
* fix 39384

* add test
2020-07-06 08:49:50 -04:00
Alexander T
9f8585913b feat(25259): change diagnostic message 2020-07-04 09:05:47 +03:00
csigs
9a5c0074aa LEGO: Merge pull request 39417
LEGO: Merge pull request 39417
2020-07-03 21:11:34 -07:00
csigs
7eeecee3b3 LEGO: check in for master to temporary branch. 2020-07-04 04:10:46 +00:00
csigs
ab83e3246e LEGO: Merge pull request 39416
LEGO: Merge pull request 39416
2020-07-03 15:12:02 -07:00
csigs
db785545f2 LEGO: check in for master to temporary branch. 2020-07-03 22:11:08 +00:00
Anders Hejlsberg
2fe2f88047 Fix control flow analysis for nested try-catch-finally statements (#39399)
* Fix control flow analysis for nested try-catch-finally statements

* Add tests
2020-07-03 09:51:01 -07:00
csigs
fd8ca520ab LEGO: Merge pull request 39408
LEGO: Merge pull request 39408
2020-07-03 09:11:25 -07:00
csigs
bf6c69ba71 LEGO: check in for master to temporary branch. 2020-07-03 16:10:37 +00:00
csigs
f2b73501f7 LEGO: Merge pull request 39404
LEGO: Merge pull request 39404
2020-07-03 03:11:25 -07:00
csigs
7c71a7f034 LEGO: check in for master to temporary branch. 2020-07-03 10:10:39 +00:00
Michael Hensler
2d09da6df5 allow consecutive newlines in jsdoc tag comments (#38036) 2020-07-02 14:19:37 -07:00