17669 Commits

Author SHA1 Message Date
Mohamed Hegazy
b59824ad9f
Merge pull request #25190 from mprobst/fix-generic-type-emit
Fix decorator design:types emit for type variables.
2018-06-26 14:04:37 -07:00
Nathan Shively-Sanders
9025bc7c69
Fix control flow loop in yield expression (#25228)
* Fix control flow loop in yield expression

Yet again, the fix is to stop using checkExpressionCached.

* Update lib in test to reduce number of errors
2018-06-26 12:50:29 -07:00
Nathan Shively-Sanders
9044589377
Fix duplicate errors in js special assignments (#24508)
* Fix duplicate errors in js special assignments

* Simplify checkExpressionCached call to checkExpression

* Accept baselines after merge

* Use Map for deferredNodes and improve NoDeferredCheck comment

I added an assert when a duplicate was added, but it caused 18 failures
in our test suite.

* Remove NoDeferredCheck
2018-06-26 12:40:58 -07:00
Wesley Wigham
a7be62f9db
Track name scope aloneside lexical scope 2018-06-26 12:24:55 -07:00
Nathan Shively-Sanders
133bb9f78d
Add name to jsDocParsing link tag test (#25229) 2018-06-26 10:50:59 -07:00
Ryan Cavanaugh
e38aad8b79
Merge pull request #25202 from RyanCavanaugh/addChakraAPIs
Add Chakra APIs for tsc.exe --build
2018-06-26 09:29:25 -07:00
Martin Probst
6a24eabd18 Set current scope for classes. 2018-06-26 16:33:36 +02:00
Martin Probst
f1fe0b8116 use better scope 2018-06-26 15:51:37 +02:00
Anders Hejlsberg
70975cd08f
Merge pull request #24897 from Microsoft/restTuples
Tuples in rest parameters and spread expressions
2018-06-25 19:26:35 -07:00
Ron Buckton
bc3268b654
Merge pull request #25211 from Microsoft/gulpBrowserify
Clean up browserify task, remove unused 'debugMode.js' script
2018-06-25 16:56:47 -07:00
Ron Buckton
78bf10ad80
Merge pull request #25004 from Microsoft/trackFailedTests
Adds failed test tracking
2018-06-25 16:55:43 -07:00
Ron Buckton
5ed96ec072 Clean up browserify task, remove unused 'debugMode.js' script 2018-06-25 16:21:28 -07:00
Nathan Shively-Sanders
99ebcd788f
Treat link tag as comment (#25206)
* First attempt at parsing. Doesn't work

But my machine is dying, so this is an emergency commit.

* Parsing sort of works

But it's not right yet; the test I added fails. See the TODO I added.

* Parse link tag as comment
2018-06-25 15:27:49 -07:00
Ryan Cavanaugh
fa9f071c14 Don't try to write --pretty results to unsupported consoles in --build 2018-06-25 14:10:27 -07:00
Ryan Cavanaugh
d474603844 Pipe through Chakra APIs for tsc.exe --build 2018-06-25 14:10:07 -07:00
Anders Hejlsberg
d7443f04fd Contextual typing by tuple rest elements 2018-06-25 10:45:02 -10:00
Andy
0b5b7ef547
Fix removal of default import (#25200) 2018-06-25 12:41:32 -07:00
Andy
f52c881ab1
Improve verify.renameLocations (#25192) 2018-06-25 12:41:12 -07:00
Mohamed Hegazy
9c71eaf590
Merge pull request #25194 from Vimal-Raghubir/master
Fix issue regarding WeakMap constructor
2018-06-25 12:27:57 -07:00
Andy
6cd27a3217
Support doc comment template at function expression (#25050) 2018-06-25 11:40:45 -07:00
Andy
4c326b2b6c
Simplify addJSDocComment (#25196)
* Simplify addJSDocComment

* Add assert
2018-06-25 11:36:37 -07:00
Andy
62e5541a66
parseJSDocCommentWorker: Don't need result (#25197) 2018-06-25 11:34:20 -07:00
Andy
9aa60f27eb
goToDefinition: Don't add duplicate definitions for PropertyAssignment and ArrowFunction at m: () => {} (#24995)
* goToDefinition: Don't add duplicate definitions for PropertyAssignment and ArrowFunction at `m: () => {}`

* Just use !isCallLikeExpression
2018-06-25 11:33:47 -07:00
Ron Buckton
52fa900b5c Merge branch 'master' into trackFailedTests 2018-06-25 11:26:08 -07:00
Andy
e8e80d2bbd
Don't crash on property access with type (#25170)
* Don't crash on property access with type

* Move test
2018-06-25 11:25:52 -07:00
Andy
b3a6428186
Fix completions trigger character on JSX opening tag (#25167) 2018-06-25 11:10:38 -07:00
Andy
878bf80a48
Make GetEditsForFileRenameRequestArgs not extend FileRequestArgs (#25052)
* Make GetEditsForFileRenameRequestArgs not extend FileRequestArgs

* Code review: check new location first, and use scriptInfo.getDefaultProject()

* Remove changes to e getDefaultProjectForFile (now #25060)

* Undo API changes (#24966)

* Combine edits from all projects (fixes #25052)

* Update API (#24966)

* Ignore orphan projects or projects with language service disabled
2018-06-25 11:00:51 -07:00
Andy
806a661be3
Add refactor to convert named to default export and back (#24878)
* Add refactor to convert named to default export and back

* Support ambient module

* Handle declaration kinds that can't be default-exported

* Update API (#24966)
2018-06-25 10:34:24 -07:00
Vimal Raghubir
b883a82f9f
Fix issue regarding WeakMap constructor 2018-06-25 12:53:41 -04:00
csigs
ed4236e442 LEGO: check in for master to temporary branch. 2018-06-25 16:10:24 +00:00
Andy
be5986b32d
Remove unused function (#25138)
* Remove unused function

* Update API (#24966)
2018-06-25 08:32:33 -07:00
Martin Probst
55c3ec3e94 Fix decorator design:types emit for type variables.
Previously, TypeScript would resolve the reified types for the
`design:types` decorator emit in the regular `currentScope`. That scope
does not include class declaration bodies.

However when reifying types, class declarations do introduce a new scope
for any `TypeVariable`s declared on them. Because TS resolved the
EntityName for such types against the parent scope (e.g. the source
file), not the class scope, TypeScript would either fail to resolve the type (giving `TypeReferenceSerializationKind.Unknown`), or
incorrectly resolve to a different, accidentally matching symbol in the outer scope (giving `TypeWithConstructSignatureAndValue`).

This would result in an emit referencing an undeclared symbol, or
mis-referencing the wrong symbol.

    __metadata("design:type", typeof (_a = typeof TypeVariable !== "undefined" && TypeVariable) === "function" && _a || Object)
    __metadata("design:type", TypeVariable)

This change special cases `currentScope` for
`serializeTypeReferenceNode` to use a class scope, if present. This
changes the emit for a `TypeVariable` back to `Object`:

    __metadata("design:type", Object)
2018-06-25 17:24:05 +02:00
Anders Hejlsberg
28c9f5933a Complete support for rest elements in tuples 2018-06-24 14:32:41 -10:00
csigs
91568b7288 LEGO: check in for master to temporary branch. 2018-06-22 22:10:36 +00:00
Wesley Wigham
bd97e12f76
Multifaceted approach to performantly enabling fileExists outside of the synchronize step in the emit host (#25107)
* Multifaceted approach to performantly enabling fileExists outside of the synchronize step in the emit host

* make cache undefinable and handle correctly

* Remove unneeded cast

* Readd assert

* More useful failure messager
2018-06-22 14:05:36 -07:00
Wesley Wigham
c441451f83
Cache specifier resolutions for speed when emitting many types from the same place (#25112)
* Cache specifier resolutions for speed when emitting many types from the same place

* I swear I accepted this once already
2018-06-22 14:05:07 -07:00
Andy
38a60ac59b
Fix --strictNullChecks error with getDefaultProjectForFile (#25060)
* Fix --strictNullChecks error with getDefaultProjectForFile

* Mark methods internal
2018-06-22 11:22:34 -07:00
Andy
42fc8431f7
getEditsForFileRename: Don't update import with non-relative path if the imported file didn't move (#25159) 2018-06-22 11:21:45 -07:00
Andy
cb9c3e0f6a
Don't provide a path completion if a directory name was already typed (#25055) 2018-06-22 11:18:16 -07:00
Anders Hejlsberg
b650d7d06b Fix issue 2018-06-22 06:26:52 -10:00
Anders Hejlsberg
b0d8c6551e Merge branch 'master' into restTuples
# Conflicts:
#	src/compiler/checker.ts
2018-06-22 06:10:50 -10:00
csigs
80b4c7ea9e LEGO: check in for master to temporary branch. 2018-06-22 16:10:35 +00:00
Anders Hejlsberg
ae859d6303 Update destructuring to support optional and rest elements in tuples 2018-06-21 17:01:46 -10:00
Nathan Shively-Sanders
0bb897273f
Parse nested prop and param tags the same way (#25139)
That is, only nest them if their name matches the provided parent name.
Otherwise do not nest them.

Note that this commit changes the behaviour of an incorrect typedef that
contains both an `@type` child tag and `@property` child tags.

Previously, the `@type` would be incorrectly nested under a `@property`
tag with type `object`, just like `@property` tags would be. Now, the
`@type` tag causes the entire typedef to ignore the `@property` tags and
treat the typedef as if it were an instance of the
typedef-and-nested-type pattern:

```js
/**
 * @typedef {Object} name
 * @type {{ the, actual, type }}
 */
```
2018-06-21 16:12:55 -07:00
Daniel Rosenwasser
b4cf51365d
Merge pull request #25136 from Microsoft/useGetObjectFlags
Use `getObjectFlags` as suggested in previous PR.
2018-06-21 14:30:59 -07:00
Daniel Rosenwasser
a5b9a4c5ea Use getObjectFlags as suggested in previous PR. 2018-06-21 13:52:06 -07:00
Daniel Rosenwasser
72068e22af
Merge pull request #25115 from Microsoft/matchingTypeRefs
Improved errors using type reference targets
2018-06-21 13:46:21 -07:00
Wenlu Wang
51e7ae0813 provide spelling suggestion for indexed access (#22225)
* provide spelling suggestion for indexed access

* update merge

* accept baseline

* fix suggession return type

* allow string or identifier on getSuggestionForNonexistentProperty

* fix lint
2018-06-21 13:40:41 -07:00
Daniel Rosenwasser
9df95fee79 Expand better error messages to anonymous object types with identical type aliases. 2018-06-21 13:13:26 -07:00
Andy
662ca71efc
Add 'withContext' helper in createNodeBuilder (#24994) 2018-06-21 12:17:38 -07:00