10435 Commits

Author SHA1 Message Date
Wesley Wigham
50866e114a
Fix visibility checking of mutually recursive exports (#19929)
* Do visibility painting from collectLinkedAliases in checker to remove statefullness in declaration emit

* Fix #17085

* Add deeply destructured array to test

* Add test case for #18634

* Add PR feedback
2017-11-21 15:06:27 -08:00
Andy
6e57c2630f
Support getJSDocCommentsAndTags for special property assignments (#20193) 2017-11-21 14:29:52 -05:00
Anders Hejlsberg
9abb72d920
Merge pull request #20166 from Microsoft/definiteAssignmentAssertions
Definite assignment assertions
2017-11-21 06:27:56 -08:00
Andy
53796eed59
Clean up lexical classifier (#20123) 2017-11-20 16:25:51 -08:00
Wesley Wigham
a551c4cd64
Allow curly around @type jsdoc to be optional (#20074)
* Allow curly around `@type` jsdoc to be optional

* Incorporate restructuring from @andy-ms
2017-11-20 16:10:50 -08:00
Anders Hejlsberg
9b9f3f25d7 Merge branch 'master' into definiteAssignmentAssertions 2017-11-20 15:09:50 -08:00
Anders Hejlsberg
005838f6df
Merge pull request #20142 from Microsoft/fixTypeVariableInstanceof
Fix instanceof with type variable constrained to class
2017-11-20 12:57:51 -08:00
Anders Hejlsberg
ed4dc57a52 Merge branch 'master' into definiteAssignmentAssertions 2017-11-20 11:08:44 -08:00
Anders Hejlsberg
148dc4e013
Merge pull request #20075 from Microsoft/strictPropertyInitialization
Strict property initialization checks in classes
2017-11-20 10:44:27 -08:00
Anders Hejlsberg
272076391b Allow '!' only on variable declarations within variable statements 2017-11-20 09:31:11 -08:00
Nathan Shively-Sanders
edf9f02bdd Merge branch 'master' into jsdoc-errors-become-semantic-errors 2017-11-20 08:34:26 -08:00
Nathan Shively-Sanders
744760df91 Cache result of isCheckJsEnabledForFile in getSemanticDiagnosticsForFile 2017-11-20 08:34:01 -08:00
Anders Hejlsberg
1624e1bc1a Definite assignment assertion '!' on variable and property declarations 2017-11-19 16:48:43 -08:00
Anders Hejlsberg
40579472a2 Handle type variables in isTypeDerivedFrom 2017-11-19 09:50:33 -08:00
Anders Hejlsberg
0fbf36c2fd Add definite assignment checks for property accesses in constructor body 2017-11-18 11:32:17 -08:00
Anders Hejlsberg
dccf57f107 Simplify checkPropertyAccessExpressionOrQualifiedName 2017-11-18 08:49:24 -08:00
Andy
82502ea086 Fix semantic merge conflict (#20119) 2017-11-17 15:29:09 -08:00
Andy
97bb471e48
For import completion, if multiple re-exports exist, choose the one with the shortest path (#20049)
* For import completion, if multiple re-exports exist, choose the one with the shortest path

* Code review
2017-11-17 14:35:32 -08:00
Anders Hejlsberg
8c4c529d8e Merge branch 'master' into strictPropertyInitialization 2017-11-17 14:30:23 -08:00
Andy
e7adb1ce79
Bundle fileName with CodeActionCommand (#19881)
* Bundle fileName with CodeActionCommand

* Update test

* Fix API tests

* Add new overloads in services

* Fix overload

* Update API baselines
2017-11-17 14:16:38 -08:00
Anders Hejlsberg
86871c7ea0 Fix lint error 2017-11-17 13:23:19 -08:00
Anders Hejlsberg
85ea473ff3 Exclude abstract properties from strict initialization checks 2017-11-17 13:21:36 -08:00
Nathan Shively-Sanders
eeeefcc10e Report jsdoc errors as semantic errors
This allows reporting of semantic errors as well. Semantic errors are
likely to outnumber syntactic errors, so it's valuable not to block
semantic errors on a few syntactic errors.
2017-11-17 10:38:30 -08:00
Andy
0c0f4b81ae
Simplify documentHighlights (#20091) 2017-11-17 10:19:35 -08:00
Anders Hejlsberg
041d04577e Revise return control flow graph construction logic 2017-11-17 09:05:46 -08:00
Andy
74a44e09a7
Support semantic classification of alias (#20012) 2017-11-17 08:04:51 -08:00
Andy
46c0edcebd
In getContextualTypeForBinaryOperand, only need to look for = assignment operator, not e.g. += (#20037)
* In `getContextualTypeForBinaryOperand`, only need to look for `=` assignment operator, not e.g. `+=`

* isNonContextualBinaryExpression -> isContextSensitiveAssignment
2017-11-17 07:29:32 -08:00
Anders Hejlsberg
190f99e460 Exclude static properties 2017-11-16 17:30:14 -08:00
Nathan Shively-Sanders
c698a2b8e5
Merge pull request #19227 from Microsoft/infer-object-type-from-string-literal-to-keyof-T
Infer object type from string literal to keyof T
2017-11-16 15:07:12 -08:00
Charles Pierce
1da35d9dca Treat exhaustive switch as last statement in function #18882 (#20063) 2017-11-16 12:17:26 -08:00
Andy
94581c1946
Strip "/index" from import fix module specifiers (#19962)
* Strip "/index" from import fix module specifiers

* Require "node" module resolution

* More tests
2017-11-16 11:12:34 -08:00
Nathan Shively-Sanders
2263a1e73b
Merge pull request #20071 from Microsoft/error-on-excess-spread-arguments
Error on excess spread arguments
2017-11-16 11:00:24 -08:00
Anders Hejlsberg
8cbff0159d Add --strictPropertyInitialization compiler option 2017-11-16 10:58:00 -08:00
Anders Hejlsberg
c11969f804 Mark returnFlowNode property as internal 2017-11-16 10:57:15 -08:00
Anders Hejlsberg
5f6d7f34d8 Add strict property initialization checks 2017-11-16 10:36:32 -08:00
Anders Hejlsberg
f1762a04ea Attach return control flow graph to contructor declaration nodes 2017-11-16 10:35:14 -08:00
Nathan Shively-Sanders
6a08820fe7 Improve spread arity mismatch error messages
Thanks @weswigham for the improved wording.
2017-11-16 10:28:17 -08:00
Anders Hejlsberg
b6f96052d8
Merge pull request #19976 from Microsoft/optimizeParser
Optimize parsing
2017-11-16 10:19:10 -08:00
Nathan Shively-Sanders
8657dc10a7 Error on excess spread arguments
Make the *technically* correct construction illegal:

```ts
declare function f(n: number): void;
declare var ns: number[];
f(1, ...ns);
```

This call only makes sense if `ns = []`, but in that case, why pass
`ns` at all? Allowing this call masks other errors when functions are
refactored to have fewer parameters, or to stop using rest parameters:

```ts
declare function old(...ns: number[]): void;
declare function new(ns: number | number[]): void;
old(1, ...ns); // Fine!
new(1, ...ns); // Should error!
```

This change the error for excess spread arguments to be more
understandable:

"Expected 3 arguments, but got least 4".

Previously the error would have been
"Expected 3 argument, but got at least 3", which is, again, technically
correct, but not understandable.
2017-11-16 09:31:50 -08:00
Andy
f352e46892
Revert "Change "isThisless" predicates to "mayReferenceThis" predicates (#20036)" (#20054)
This reverts commit 3d05952719a8b5023ca342ca353c04b5f552f71c.
2017-11-16 06:47:12 -08:00
Ron Buckton
ccba1280dc Use correct base primitive type 2017-11-15 17:31:52 -08:00
Ron Buckton
0b24f02aae Use correct base primitive type 2017-11-15 17:12:05 -08:00
Ron Buckton
86b0759b09 PR feedback 2017-11-15 16:47:01 -08:00
Ron Buckton
a21a129abb Merge branch 'master' into dynamicNames 2017-11-15 15:24:05 -08:00
Andy
4b96edf72f
Treat ... in jsdoc type as creating a synthetic rest parameter -- not as an array type (#19483)
* Treat `...` in jsdoc type as creating a synthetic rest parameter -- not as an array type

* Change type parsing so `...T[]` parses as `...(T[])` and not `(...T)[]`

* Replace the last parameter with ...args, and make access to it potentially undefined

* Code review
2017-11-15 13:04:08 -08:00
Andy
3d05952719
Change "isThisless" predicates to "mayReferenceThis" predicates (#20036)
* Change "isThisless" predicates to "mayReferenceThis" predicates

* Fix name

* Code review
2017-11-15 12:43:16 -08:00
Nathan Shively-Sanders
8a7b8445de
Merge pull request #19655 from Microsoft/instantiate-this-in-type-parameter-constraints
Instantiate this when used only in type parameter constraints
2017-11-14 16:22:37 -08:00
Nathan Shively-Sanders
0c77b776ce Rename and inline functions 2017-11-14 16:06:48 -08:00
Andy
592ee00906
Have CompletionEntryDetails source use a relative path (#19917)
* Have CompletionEntryDetails source use a relative path

* Use getCanonicalFileName from services Instead of creating a new one
2017-11-14 14:26:49 -08:00
Wesley Wigham
9c51a8534e
Synchronize getEntityNameForDecoratorMetadata and serializeUnionOrIntersectionType (#19879) 2017-11-14 14:20:18 -08:00