Commit graph

29180 commits

Author SHA1 Message Date
Nathan Shively-Sanders
969634b97c
Restore delayed merge check to getTypeFromJSDocValueReference (#34706)
* Restore delayed merge check to getTypeFromJSDocValueReference

This is needed when a function merges with a prototype assignment. The
resulting *merged* symbol is a constructor function marked with
SymbolFlags.Class. However, the merge doesn't happen until
getTypeOfFuncClassEnumModule is called, which, in the
getTypeReferenceType code path, doesn't happen until
getTypeFromJSDocValueReference. That means the check for
SymbolFlags.Class is missed.

Previously, getTypeFromJSDocValueReference had a weird check
`symbol !== getTypeOfSymbol(symbol).symbol`, which, if true, ran
getTypeReferenceType again on `getTypeOfSymbol(symbol).symbol`. For
JS "aliases", this had the effect of dereferencing the alias, and for
function-prototype merges, this had the effect of ... just trying again
after the merge had happened.

This is a confusing way to run things. getTypeReferenceType should
instead detect a function-prototype merge, cause it to happen, and
*then* run the rest of its code instead of relying on try-again logic at
the very end. However, for the RC, I want to fix this code by restoring
the old check, with an additional check to make sure that #33106 doesn't
break again:

```ts
const valueType = getTypeOfSymbol(symbol)
symbol !== valueType.symbol && getMergedSymbol(symbol) === valueType.symbol
```

I'll work on the real fix afterwards and put it into 3.8.

* Add bug number
2019-10-24 09:24:58 -07:00
Wesley Wigham
07d3a2ec7e
Do not consider element accesses which are neither statically bindable nor late bound as special assignments (#34679) 2019-10-23 16:01:25 -07:00
Nathan Shively-Sanders
8223c07527
getTypeFromJSDocValueReference: handle import types (#34683)
Previously it only handled types whose declaration was from `require`,
but now it handles types whose reference is an import type as well.
2019-10-23 15:53:38 -07:00
Edward Thomson
eb08ee6848 Add GitHub Actions (#34614) 2019-10-23 13:57:49 -07:00
Orta
56b74d3652
Merge pull request #34648 from orta/readme_links
Update the README links
2019-10-23 15:14:59 -04:00
Keen Yee Liau
f689982c9f Prioritize loading plugin from probeLocations over peer node_modules
This commit reoroders the loading sequence of a tsserver plugin. It
should first check `pluginProbeLocations` before checking peer
node_modules.

PR closes https://github.com/microsoft/TypeScript/issues/34616
2019-10-23 11:28:44 -07:00
Andrew Casey
6f04f526d4
Merge pull request #34659 from amcasey/FARGlobalThis
Don't assume that all symbols have declarations
2019-10-22 16:26:19 -07:00
Andrew Casey
590fd3f2a2 Don't assume that all symbols have declarations
...in Find All References.  For example, global `this` doesn't in
modules.

Part of #34404
2019-10-22 15:00:30 -07:00
Kārlis Gaņģis
479d30646f Fix crash in assigning function with this ref to alias (#34650) 2019-10-22 14:33:45 -07:00
Nathan Shively-Sanders
1cbbe288ac
Treat any mix of element/prop access as declaration in JS (#34649)
Fixes #34642 but, notably, doesn't actually make the assignment into a
working declaration. It just fixes the crash.
2019-10-22 11:28:28 -07:00
Orta Therox
73a206b47f Update the README links 2019-10-22 13:43:52 -04:00
Andrew Casey
159b6262ea
Merge pull request #34631 from amcasey/ComputedPropName
Handle undefined from getPropertyNameForPropertyNameNode
2019-10-22 10:17:05 -07:00
Andrew Casey
8cf13249ea
Merge pull request #34521 from amcasey/LazyDirectoryCreation
Stop pre-emptively creating directories
2019-10-21 17:41:54 -07:00
Andrew Casey
7862e58354 Handle undefined from getPropertyNameForPropertyNameNode
...which can be returned when the property name is computed.

Part of #34404
2019-10-21 17:41:06 -07:00
Andrew Casey
af2f46e899 Use longer lambda parameter names 2019-10-21 16:22:10 -07:00
Daniel Rosenwasser
778a757e88
Change master branch version to 3.8 (#34629)
Change `master` branch version to 3.8
2019-10-21 15:37:07 -07:00
Daniel Rosenwasser
def1e7163d Accepted baselines. 2019-10-21 15:11:16 -07:00
Daniel Rosenwasser
1b0fca5df5 Update version to 3.8. 2019-10-21 14:51:21 -07:00
Andrew Casey
ca31f008a8 Address more potential this issues 2019-10-21 14:01:12 -07:00
Andrew Casey
6429e4cd36 Fix undefined this 2019-10-21 13:32:42 -07:00
Anders Hejlsberg
f84fd300b8
Merge pull request #34607 from microsoft/fix33490
Fix type inference regression
2019-10-21 12:50:38 -07:00
Anders Hejlsberg
ff6626f869
Merge pull request #34597 from microsoft/optionalChainControlFlow
More optional chaining control flow analysis
2019-10-21 12:36:07 -07:00
Daniel Rosenwasser
28028eb144
Extend the correct tsconfig.json. (#34615)
Extend the correct tsconfig.json.
2019-10-21 11:50:14 -07:00
Daniel Rosenwasser
b167012561 Extend the correct tsconfig.json. 2019-10-21 10:46:41 -07:00
Andrew Branch
1d3ecc0610
Ensure export= symbol from JavaScript always has a valueDeclaration (#34553) 2019-10-21 09:56:02 -07:00
Anders Hejlsberg
82019d616d Accept new baselines 2019-10-20 18:01:41 -07:00
Anders Hejlsberg
56520da6f0 Add regression tests 2019-10-20 18:00:08 -07:00
Anders Hejlsberg
8f15a2e639 Fix type inference regression 2019-10-20 17:59:21 -07:00
Anders Hejlsberg
ee846d95af Accept new baselines 2019-10-19 10:52:04 -07:00
Anders Hejlsberg
d218a31a7d Add tests 2019-10-19 10:51:59 -07:00
Anders Hejlsberg
60b391507e And a few more 2019-10-19 07:04:24 -07:00
Orta
e8782aef22
Merge pull request #34574 from orta/add_docs_tsserver_debug
Improve the launch template
2019-10-19 09:06:18 -04:00
Orta Therox
0a0833b376 Improve the launch template 2019-10-19 08:44:28 -04:00
Daniel Rosenwasser
b845800bdf
Add option to configure automatic optional chain completions (#34552)
Add option to configure automatic optional chain completions
2019-10-18 17:35:59 -07:00
Daniel Rosenwasser
f33465416f
Ensure original files are included in tsconfig.release.json (#34584)
Ensure original files are included in tsconfig.release.json
2019-10-18 17:35:37 -07:00
Ron Buckton
556da72ffd
[WIP] Improve optional chaining checker performance (#33794)
* Improve optional chaining checker performance

* Improve optional chaining checker performance

* Add flags to Signature

* Inline getOptionalExpression

* split checks for optional chains

* Cache optional call signatures
2019-10-18 17:27:47 -07:00
Anders Hejlsberg
98fe34225c Handle more cases 2019-10-18 16:33:55 -07:00
Andrew Branch
91196fc53f
Ensure functions that have prototype properties assigned by Object.defineProperty get marked as classes (#34577)
* Ensure functions that have prototype properties assigned by Object.defineProperty get marked as classes

* Revert unneeded change
2019-10-18 16:31:43 -07:00
Daniel Rosenwasser
fbc070f328 Extend tsconfig.release.json from the sibling tsconfig.json to ensure files aren't forgotten. 2019-10-18 16:12:31 -07:00
Daniel Rosenwasser
218bbcd669 Don't immediately return in getMemberSymbols. 2019-10-18 15:23:56 -07:00
Nathan Shively-Sanders
cdf1ab2dec
Bind @class in the right place -- bindWorker not bindChildrenWorker (#34575)
Also add an assert to make future mismatches fail in an obvious place
instead of in a while loop.
2019-10-18 14:13:14 -07:00
Nathan Shively-Sanders
fa1884ed1b
Fix crash in expando assignment to alias (#34566)
* Fix crash in expando assignment to alias

This PR disallows expando assignments

Fixes #34493, but disallows the prototype assignment nonetheless.

* Revert mistaken changes
2019-10-18 13:31:44 -07:00
Nathan Shively-Sanders
1d5add528d
Emit computed property temps even w/o init w/useDefineForClassFields (#34406)
Fixes #33857
2019-10-18 13:23:38 -07:00
Daniel Rosenwasser
9b6a027167 Perform checks prior to calling addTypeProperties. 2019-10-18 13:03:25 -07:00
Anders Hejlsberg
241de73556
Merge pull request #34496 from microsoft/fix34272
Properly attach alias symbol to `readonly T[]` types
2019-10-18 12:07:03 -07:00
Anders Hejlsberg
d3df927c7a Optional chain control flow analysis fixes 2019-10-18 10:50:03 -07:00
Ben Lichtman
1bfc47252f
Merge pull request #33938 from uniqueiniquity/classifcationAssertion
Add assertion when classification has unexpected length
2019-10-18 09:44:51 -07:00
Ben Lichtman
65561a89dd fix assertion condition 2019-10-18 09:18:16 -07:00
Michael Crane
0fc388893e Remove redundant and misplaced perfLogger startup statement (#34551) 2019-10-18 09:13:40 -07:00
Nathan Shively-Sanders
82f927f8dd
Fix stack overflow in circular assignment declaration (#34543)
* Fix stack overflow in circular assignment declaration

It also needs to have multiple assignments so that it has a ValueModule
flag.

Fixes #33006

* remove errant comment

* Remove other possible circularity

* Restore fallback with additional condition
2019-10-18 09:01:21 -07:00