Commit Graph

11776 Commits

Author SHA1 Message Date
Nathan Shively-Sanders
5be8f1f9f9 Better handling of circular JS containers in getTypeOfVariableOrParameterOrProperty (#24732)
* avoid circularity in getTypeOfVariableOrParameterOrProperty

Modify getTypeOfVariableOrParameterOrProperty to get the type of the
variable declaration before widening it. This essentially avoids some
circularities by (1) setting the type of the variable declaration to the
unwidened type (2) updating the type of the variable declaration to the
widened one.

You will still get a circular noImplicitAny in (1), for expressions that
actually are circular, but not in (2), for the containers of things that
are not themselves circular.

* Stop checking js init object literals via checkObjectLiteral

* checkBinaryExpression: new code for special assignments

* Chained lookup for js initializer type

* Check for JS-specific types only once

Also make sure to respect the type annotation if there is one.

* Accept API changes
2018-06-12 09:42:26 -07:00
Ron Buckton
756e46bfe3 Reuse resolvedProjectReferences 2018-06-11 17:59:32 -07:00
Ryan Cavanaugh
bb4872787c Merge branch 'master' into projzilla 2018-06-11 13:36:31 -07:00
Mohamed Hegazy
35d25ff280 Merge pull request #24645 from Kingwl/this-type-accessibility
allow access protected member in this parameter context
2018-06-11 13:17:58 -07:00
Mohamed Hegazy
e07e2e0e1f Merge pull request #23423 from Kingwl/add-braces
add support for add or remove braces to arrow function
2018-06-11 13:09:38 -07:00
Ryan Cavanaugh
ab10b86205 Almost working? 2018-06-10 19:28:38 -07:00
Ryan Cavanaugh
5804905ca6 Jakefile rewrite WIP 2018-06-10 13:23:16 -07:00
Ryan Cavanaugh
336c37662d Projzilla phase 1 2018-06-09 16:48:08 -07:00
Ryan Cavanaugh
f4fcb1912c Merge pull request #24465 from RyanCavanaugh/tsbuild
"tsc -b" with minimal watch capabilities
2018-06-10 05:15:53 +12:00
Ryan Cavanaugh
0f626fdcb3 Last round PR comments 2018-06-09 09:43:25 -07:00
Ryan Cavanaugh
b97bc8e071 Use native map 2018-06-09 09:15:17 -07:00
Ryan Cavanaugh
1de2f839f2 PR fixups 2018-06-08 17:43:16 -07:00
Andy
04187bde8d fixStrictClassInitialization: Support array initializer (#24810) 2018-06-08 15:56:56 -07:00
Sheetal Nandi
8c7a9ccc27 Merge pull request #24811 from Microsoft/computedPropertyNameWithDefaultImport
Always resolve the first identifier of computed property name to get the symbol and track it
2018-06-08 15:35:38 -07:00
Sheetal Nandi
5d70d9223c Always resolve the first identifier of computed property name to get the symbol and track it
Fixes #24798
2018-06-08 14:03:18 -07:00
Wesley Wigham
4240d9dc0f always visit them all (#24802) 2018-06-08 13:11:30 -07:00
kingwl
ee310a42f0 move static flag predicate before get container 2018-06-09 03:08:15 +08:00
kingwl
0d730c008a Merge branch 'master' into add-braces 2018-06-09 01:32:53 +08:00
Andy
3822e3e4ed tryGetModuleNameAsNodeModule: Ignore file extension (#24774) 2018-06-07 15:45:03 -07:00
Ron Buckton
e947154aec Merge pull request #24768 from Microsoft/fix24722
Fix prologue order in async function
2018-06-07 15:05:09 -07:00
Andy
48dedacf3b fixStrictClassInitialization: Don't provide a default for string or number (#24767)
* fixStrictClassInitialization: Don't provide a default for `string` or `number`

* Update baselines
2018-06-07 15:03:38 -07:00
Sheetal Nandi
604bebab86 Merge pull request #24769 from Microsoft/ignoreWindowsUsersFolder
Do not watch folders like "c:/users/username", "c:/users/username/folderAtRoot"
2018-06-07 14:36:10 -07:00
Sheetal Nandi
16e01174b7 Do not watch folders like "c:/users/username", "c:/users/username/folderAtRoot"
Fixes Microsoft/vscode#51139
2018-06-07 13:52:34 -07:00
Ron Buckton
2b4569c04f Fix prologue order in async function 2018-06-07 13:34:16 -07:00
Klaus Meinhardt
5b92bdd88f checker: avoid useless closures 2018-06-07 20:35:47 +02:00
Wesley Wigham
d0ae03c4cc Handle import types in serializeType (#24701) 2018-06-07 10:40:14 -07:00
Ryan Cavanaugh
21a65f5dc0 Improved watch mode 2018-06-06 16:47:15 -07:00
Ryan Cavanaugh
b107849a3a Improve handling of container projects and issue relative filename messages 2018-06-06 13:47:59 -07:00
Ryan Cavanaugh
291289f8c2 Update messages 2018-06-06 13:03:03 -07:00
Mohamed Hegazy
34dd7738c9 Merge pull request #24672 from bakkot/binding-comma
Allow trailing commas after non-rest elements in destructuring
2018-06-06 13:00:17 -07:00
Nathan Shively-Sanders
30994c86e4 Improve valueDeclaration for js module merges (#24707)
Nearly everything in a merge of JS special assignments looks like a
valueDeclaration. This commit ensures that intermediate "module
declarations" are not used when a better valueDeclaration is available:

```js
// File1.js
var X = {}
X.Y.Z = class { }

// File2.js
X.Y = {}
```

In the above example, the `Y` in `X.Y.Z = class { }` was used as the
valueDeclaration for `Y` because it appeared before `X.Y = {}` in the
compilation.

This change exposed a bug in binding, #24703, that required a change in
typeFromPropertyAssignmentOutOfOrder. The test still fails for the
original reason it was created, and the new bug #24703 contains a repro.
2018-06-06 11:11:15 -07:00
Nathan Shively-Sanders
d6250c8342 Fix circularity error when extending class in same JSContainer (#24710)
Do this by not widening properties of an object literal that are

1. JS initialisers
2. and not an object literal

These properties have types that will never widen, so the compiler
shouldn't ask for the types earlier than it strictly needs to.
2018-06-06 09:13:38 -07:00
Ryan Cavanaugh
856fc79ae7 Lint 2018-06-05 16:28:42 -07:00
Ryan Cavanaugh
5111f4d541 Move proj ref logic to the right place 2018-06-05 16:20:07 -07:00
Ryan Cavanaugh
cf87bd446d Merge branch 'master' into tsbuild 2018-06-05 14:55:51 -07:00
Nathan Shively-Sanders
8d737ca959 Simplify parseJSDocIdentifierName (#24660)
* Simplify parseJSDocIdentifierName

It now always creates a missing node. The one place that depended on it
returning undefined, parseJSDocTypeNameWithNamespace, now returns
undefined before calling parseJSDocIdentifierName.

* Remove assert

It is adequately proven at compile time.
2018-06-05 14:30:37 -07:00
Ryan Cavanaugh
449d60cdff Don't crash on no args 2018-06-05 14:14:16 -07:00
Wesley Wigham
d9b93903c0 Use more nodelike paths for import types when possible (#24610)
* Use more nodelike paths for import types when possible

* move functionality from services into compiler, fix with propert file/directory conflict handling

* mark suspect cast
2018-06-05 12:54:36 -07:00
Ryan Cavanaugh
45842a0c34 Merge remote-tracking branch 'weswigham/sourcemap-concatenation-station' into tsbuild 2018-06-05 12:31:32 -07:00
Andy
735a46f838 If parsing a function type fails, parseTypeReference() to ensure something is returned (#24567)
* If parsing a function type fails, parseTypeReference() to ensure something is returned

* Avoid tryParse

* Add missing semicolon

* Don't check for undefined, check for missing type

* Don't set parameters undefined, set to missingList and return false

* Update API baselines

* Code review
2018-06-05 10:24:37 -07:00
王文璐
56d042468f add commnet 2018-06-05 18:45:36 +08:00
王文璐
0bcbbbdd58 disallow static field access 2018-06-05 18:42:21 +08:00
Ron Buckton
fbeb58a147 Merge pull request #23893 from Microsoft/libReference
Adds 'lib' reference directives
2018-06-04 16:14:52 -07:00
Kevin Gibbons
87bb5e3cbb Allow trailing commas after-rest elements in destructuring 2018-06-04 14:58:30 -07:00
Ron Buckton
666841264c Merge branch 'master' into libReference 2018-06-04 14:38:56 -07:00
Wesley Wigham
7eaa78846e Visit the children of an import type/require call/dynamic import when looking for those (#24663) 2018-06-04 14:31:56 -07:00
Wesley Wigham
cbbf2e4e6f Resolve aliases before using getTypereferenceType (#24594) 2018-06-04 14:19:41 -07:00
Sheetal Nandi
c3dcc83d4f Merge pull request #24664 from Microsoft/builderAPIBreak
Fix the issue with createSemanticDiagnosticsBuilderProgram, createEmitAndSemanticDiagnosticsBuilderProgram and createAbstractBuilder not assignable to CreateProgram<T>
2018-06-04 13:35:40 -07:00
Nathan Shively-Sanders
7db4b1cbc7 Fix property assignment on aliases (#24659)
Aliases don't have valueDeclarations, which caused a crash when passed
to isJavascriptContainer before.
2018-06-04 13:34:23 -07:00
Andy
f9530d7e8f Add 'parseOptionalJsdoc' helper (#24650) 2018-06-04 13:28:47 -07:00