11825 Commits

Author SHA1 Message Date
Nathan Shively-Sanders
a7af92eb63
check return tag in getTypePredicateOfSignature (#25130) 2018-06-21 11:30:37 -07:00
Ron Buckton
272e5554c8 Merge branch 'master' into gulpProjectRefs 2018-06-21 10:55:35 -07:00
Andy
2b9166b2f9
Don't recommend to install '@types/foo' if that already exists (#24815)
* Don't recommend to install '@types/foo' if that already exists

* Add different extra diagnostic text if the @types package exists

* Update API (#24966)
2018-06-21 10:19:14 -07:00
Nathan Shively-Sanders
43d0794ba3
Fix crash when binding jsdoc-style inner namepaths (#25106)
* getDeclarationIdentifier handles undefined name

getNameOfDeclaration actually doesn't handle all declarations, only
those that produce names that could be reasonably used as an identifier.
Until now, getDeclarationIdentifier assumed that getNameOfDeclaration
always returned a name. This caused crashes whenever we tried to get the
name of something like a Constructor.

* Add test and baselines

* getNameOfDeclaration can return undefined

This requires all callers to handle it, which turns out now to be too
disruptive.

* Fix lint
2018-06-21 10:01:39 -07:00
Andy
40899eaf5b
Error on 'const' in class expression (#25125) 2018-06-21 09:57:52 -07:00
Andy
3e50f502bb
Mark some Type[] and Signature[] as ReadonlyArray (#25099) 2018-06-21 09:57:14 -07:00
Ron Buckton
c8c0428162 Cleanup, remove some unneeded dependencies, make it easier to add gulp.watch support later 2018-06-20 18:24:12 -07:00
Nathan Shively-Sanders
0f55566cf4
In JS, always check the extends tag of a class before its heritage clause (#25111)
* Check extends tag first in getClassExtendsHeritageClauseElement

Previously getBaseTypeNodeOfClass checked, but this is only used in a
few places.

* Fix names and add test

* Update API baseline

* Move jsdocAugments tests to conformance/jsdoc

* Better naming in checkClassLikeDeclaration
2018-06-20 16:28:30 -07:00
Sheetal Nandi
f506b28e95 Mark the declarations visible correctly when emit is disabled but asked to emit declarations for watch mode
Fixes #25068
2018-06-20 12:28:50 -07:00
Andy
b3f9ec3796
Fix bug: Still implement a method even if the return type is defined in another file (#24978) 2018-06-19 16:36:18 -07:00
Mohamed Hegazy
9706f1729e
Merge pull request #25075 from Dangoo/feat/add_intl-number-format_format-to-parts_types
Add Intl.NumberFormat.formatToParts types
2018-06-19 14:20:26 -07:00
dangoo
b7f5f2a92b Add missing references in clparser and libs.json 2018-06-19 22:24:32 +02:00
Nathan Shively-Sanders
03fff50fa4
Simplify getJSDocCommentAndTags (#24997)
Previously, getJSDocCommentAndTags could recur up to four times if any
of four predicates matched. However, to avoid duplicates, the predicates
have been tuned to be mutually exclusive, which means that the recursion
can be turned into a while loop. The while loop is much simpler and
safer, since it is guaranteed to only walk up the tree one time. In
addition, the extra check that adds jsdoc from initializers only runs
once, before the loop, further reducing the opportunity for duplicate
jsdocs.

I thought about further simplifying the code that gets the next node to
check, but to know when to stop the loop, I'd need a predicate that is
as complicated as the code in `getNextJSDocCommentLocation`, so I kept
the existing code, just reordering it for compactness.
2018-06-19 10:14:47 -07:00
Ron Buckton
5bc8f957f1 Address lint warnings 2018-06-19 02:31:03 -07:00
Ron Buckton
21c23d4e4e Merge branch 'master' into gulpProjectRefs 2018-06-18 22:51:37 -07:00
Ron Buckton
891b15f60a Update gulpfile to support project references 2018-06-18 22:45:13 -07:00
Ryan Cavanaugh
4fafe0b502
Merge pull request #25049 from RyanCavanaugh/tsbuild-fixes
Fixes downstream prepend projects not being built correctly on upstream changes
2018-06-19 12:01:42 +12:00
Ryan Cavanaugh
43d1ae42a9 Do fewer calls to getRelativePathToDirectoryOrUrl when writing sourcemaps 2018-06-18 11:12:19 -07:00
Ryan Cavanaugh
bb29a1087e Fixes downstream prepend projects not being built correctly on upstream changes 2018-06-18 11:11:03 -07:00
Ron Buckton
aa26a59835
Merge pull request #24244 from Andarist/redefining-helpers
Use redefining helper pattern for better tree-shakeability
2018-06-18 01:11:23 -07:00
Ryan Cavanaugh
73844ac565 Accept baseline 2018-06-15 11:10:54 -07:00
Wesley Wigham
640af3f75e
Introduce related spans into tsserver protocol (#24548)
* Introduce related spans into tsserver protocol

* Incorporate pretty output, implement esModuleInterop related span
2018-06-15 10:54:36 -07:00
Ryan Cavanaugh
e1e2882edf PR fixups 2018-06-15 10:48:46 -07:00
Ryan Cavanaugh
d02fe4ac44 Merge branch 'master' into esau-squash
# Conflicts:
#	tests/baselines/reference/api/typescript.d.ts
2018-06-15 10:40:46 -07:00
Ron Buckton
575ab61c6b Fix sources array case sensitivity 2018-06-14 23:27:04 -07:00
Ron Buckton
e62a5edc94 Fix off-by-one error with sourcemaps 2018-06-14 22:54:31 -07:00
Ryan Cavanaugh
03c3c9dda1 Merge branch 'master' into esau-squash 2018-06-14 13:23:15 -07:00
Nathan Shively-Sanders
57e652dd02
Js/check type tags (#24967)
* Check the type expression of `@type` tags

* Update existing tests and baselines
2018-06-14 13:11:52 -07:00
Sheetal Nandi
1cd604ac69
Merge pull request #24933 from Microsoft/failedLookupWatchesWithClassicResolver
Do not watch parent folders recursively if not needed
2018-06-14 13:09:16 -07:00
Andy
345012e29d
Don't add diagnostic on unused import starting with underscore (#24958)
* Don't add diagnostic on unused import starting with underscore

* Fix lint
2018-06-14 12:55:12 -07:00
Ryan Cavanaugh
8491f70379 Merge branch 'master' into esau-squash
# Conflicts:
#	tests/baselines/reference/api/typescript.d.ts
2018-06-14 11:25:00 -07:00
Nathan Shively-Sanders
a56b272d38
In JS, fix crash with in a file with conflicting ES2015/commonjs exports (#24960)
* fix crash with conflicting ES2015/commonjs modules

* Refactor based on PR comments
2018-06-14 11:18:23 -07:00
Wesley Wigham
a77068827d
Handle combinations of rootdir and outdir when calculating paths (#24941) 2018-06-14 11:07:46 -07:00
Wesley Wigham
2a1503610b
Stop generating sectional sourcemaps (#24917)
* Generate normal 1-part sourcemaps (at increased processing cost), since tools dislike sectional ones

* Add semicolon

* Accept sad baselines]

* Forward along sourcesContent if available

* Supress lint since the API actually calls for null here

* Fix concatenated sourcemap paths

* Accept bad baselines :(

* Add overloads

* Accept api update

* Fix lint
2018-06-13 18:52:23 -07:00
Ryan Cavanaugh
e9ab5d4cbd Ryan feels shame as a major action 2018-06-13 17:33:01 -07:00
Ryan Cavanaugh
1bbe6610a4 Merge branch 'master' into esau-squash 2018-06-13 15:35:18 -07:00
Ryan Cavanaugh
de82c54e6b Remove extra dependency + build smaller tsc.js into lkg 2018-06-13 14:50:01 -07:00
Sheetal Nandi
cd97adbf3b Do not watch the parent folders recursively if not needed.
This avoids watching folders like parent folder of the project root just to watch files created in the folder
Fixes Microsoft/vscode#51139
2018-06-13 14:37:58 -07:00
Ryan Cavanaugh
3212c1e502 Move internal comments around all day 2018-06-13 14:00:48 -07:00
Ryan Cavanaugh
805542a902 Move internal flag around 2018-06-13 11:55:53 -07:00
Ryan Cavanaugh
19ac7653f2 Return exit codes from tsbuild 2018-06-13 11:55:40 -07:00
Ryan Cavanaugh
94668ab338 Move Comparer around 2018-06-13 10:45:07 -07:00
Ryan Cavanaugh
cddff912d5 Add internal where needed 2018-06-13 10:44:13 -07:00
Ryan Cavanaugh
ce936ca88f Don't believe prepend projects are UTUTD 2018-06-13 10:44:05 -07:00
Nathan Shively-Sanders
2a8c4d1bd7
Support @this tags (#24927)
* Type check `@this` tags

No special support in fourslash yet, so quickinfo probably doesn't work.

* Do no require braces and update API baselines
2018-06-13 10:11:12 -07:00
Wesley Wigham
61fb222cd2
Use symlinks when looking for module names for declaration emit (#24874)
* fix symlink tag, support arbitrary (ie, directory) links via @link

Introduce indirect symlink lookup to specifier deriver

Use fileset, move exec

vfs path resolution :shakes fist:

Apply files symlink relative to dirname

Use directory function

* Accept really bad baseline updates
2018-06-12 12:52:44 -07:00
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
066b191982 Collapse core/compiler/parser into parser 2018-06-11 17:07:58 -07:00
Ryan Cavanaugh
bb4872787c Merge branch 'master' into projzilla 2018-06-11 13:36:31 -07:00