279 Commits

Author SHA1 Message Date
Yui
171ab06cf0 [Transforms] Merge master 06/14/2016 (#9169)
* Remove check narrowing only certain types, add test showing issues with this

* string literal case test

* Reconcile fix with CFA work

* Defaultable -> NotNarrowable to align with use

* Missed a defaultable in comments

* Add test for narrowing to unions of string literals

* Rewrite isInStringLiteral to accomodate for unterminated strings

* Refactor signatureHelp to expose helper functions

* Add support for completion in string literals

* Remove unused check

* Use const instead of let

* Fix error

* Formatting changes

* Use shorthand properties

* Add failing test for #8738

* Sort baseline reference identifier by name

* Detects assignment to internal module export clause, fixes #8738

* add SharedArrayBuffer

fix

* Factor out assignment op check

* Add test for composite assignment

* Factor out the behaviour and handles x++ and ++x

* Handles ES3 default as identifier name

* Fix missing else statement

* isNameOfExportedDeclarationInNonES6Module

* Reorder options alphabetically

* Mark diagnostics, and skipDefaultLibCheck as internal

* Allow an import of "foo.js" to be matched by a file "foo.ts"

* Improve loadModuleFromFile code

* Respond to PR comments

* Respond to more PR comments

* Fix test

* Actually merge from master

* Revert to old tryLoad implementation

* Run fixupParentReferences when parsing isolated jsDocComment

* initial revision of unit test support for project system in tsserver

* Allow wildcard ("*") patterns in ambient module declarations

* Add non-widening forms of null and undefined

* Create separate control flows for property declarations with initializers

* Add regression test

* Allow trailing commas in function parameter and argument lists

* Add tests

* Remove unused variable

* Add null check and CR feedback

* Support shorthand ambient module declarations

* Revert "Merge pull request #7235 from weswigham/narrow-all-types"

This reverts commit ef0f6c8fe4f94a7e294cfe42d7025c9dca6535d5, reversing
changes made to 9f087cb62ade7a879e23c229df752fc8f87d679c.

* reuse the fixupParentReferences function

* Improve typing of && operator with --strictNullChecks

* Add test

* Respond to PR comments

* Respond to PR comments

* Add merging tests

* Use a function `stringify` to simplify calls to `JSON.stringify(xyz, undefined, 2)`

* Update tests

* Fix mistake

* Include indent in navigation bar protocol

Previously navbar01 test had indents when run in the browser but not when run from node. Now they run the same.

* Remove unnecessary restrictions in property access narrowing

* Fix fourslash test

* Add regression test

* Consider property declarations to be control flow containers

* Adding regression test

* Remove restriction on --target es5 and --module es6

* change type definition for Object.create

* Fix signature help

* Add "implicit any" warning for shorthand ambient modules

* Remove trailing whitespace

* Support using string values in enums for CompilerOptions in transpile methods

* Remove trailing whitespace in jakefile

* Make `jake runtests-browser` support test regexes with spaces

For example: `jake runtests-browser t="transpile .js files"` now works.

* Add another test

* factor out isJsxOrTsxExtension

* Move to a conformance test

* Revert "Revert "Merge pull request #7235 from weswigham/narrow-all-types""

This reverts commit fc3e040c5167868ed623612e8f33fb3beedf73b1.

* Use inclusive flag, as originally done, but include almost everything

* Add additional tests

* Respond to PR comments

* Fix typo

* add tests for tsserver project system

* Fix test

* Allow case comparison to undefined and null in strict null checking mode

* Remove incorrectly added tests

* check if moduleResolution when verifying that program can be reused

* more tests for module resolution change and exclude

* Fix linting issues

* Merge JSDoc of assignments from function expressions

* Allow nested assignments in type guards

* Add tests

* Improve order of parameter's merged jsdoc

* Force LF newlines for LKG builds/non debug builds
Fixes 6630

* Create intersection types in type guards for unrelated types

* Split commentsFunction test into expr/decl

And renumber.

* Remove TODO comments

* Accept new baselines

* Add tests

* Remove comments

* Fix test helper

* Recognize relative path using in outDir property (#9025)

* Recognize relative path using in outDir property

* Add projects tests

* Add project .json files

* Update baselines

* Add comments

* Add test case

The test passes in 1.8 and fails in master.

* Return trace when exception happens

* Remove Long-Done TODO

AFAIK, the harness sources have been concatenated into `run.js` for as long as I've known. This stops executing them twice (and in turn makes debugging tests much easier, since you no longer have to debug into eval'd code).

* Allow primitive type guards with typeof on right

Previously, only type guards of the form `typeof x === 'string'` were
allowed. Now you can write `'string' === typeof x`.

* Primitive type guards are now order independent

* Fix comments in tests

* Add handleing for classes

* Add more tests for target=es5 module=es6

* addExportToArgumentListKind

* Accept baseline

* Add more tests

* Adds progress indicators to the runtests-parallel build task.

* Fixed typo

* Fix comment

* Add test for out-of-range error

* Use proper method of not resolving alias

* Fix module loading error

(commandLineOptions_stringToEnum would be undefined if optionDeclarations wasn't loaded yet)

* Update tests

* Contextually type return statement in async function

* Remove stale files

* Undo change

* Improve perf

* Improve tests

* Fix sourcemaps for debugging tests

* Allow --sourceRoot with --inlineSources option
Fixes #8445

* this in parameter initializers resolves to class

Accept baselines now that the test passes.

* Add tests for more kinds of import/export

* Fix7334 Disallow async in functionExpression and ArrowFunction (#9062)

* Error when using async modifier in function-expression and arrow-function when target es5

* Add tests and baselines

* Resolve function-this in parameter initialisers when explicitly provided

* Allow null/undefined guard with null/undefined on left

Also add a test with baselines.

* Code review comments

* Update more diagnostic messages ES6->2015

Fix #8996 CC @mhegazy.

* Fixes an issue with runtests-parallel when global mocha is not installed.

* Update LKG

* Add tests

* fix baselines

* Salsa: get members of variables whose initialisers are functions

* Test adding members to JS variables whose initialisers are functions

* Recommend runtests-parallel in CONTRIBUTING

* Allow empty lists on command line

* Remove single-comma empty array form

* Remove trailing whitespace

* Implicit type inclusion changes

* Only inlineSourceMap when debugging through jake-browser (#9080)

* Only inlineSourceMap when debugging through jake-browser

* Address PR: fix typo in opt's property

* minor fix: add missing return clause

* Use camel-case instead of snake-case (#9134)

* Baseline fix, CR comments, lint

* CR changes

* Add test for jsdoc in navigation bar

* Fixes runtests-parallel not reporting failure for failed tests.

* Fix decorator metadata emit for rest arg with no type

* Add isDefinition to ReferenceEntry

Clients can now easily tell if the reference is to a definition or a
usage.

* Test isDefinition

* Add option to bail out of `jake runtests` when one test fails

* Absolute-ify paths in both places

* Refactor

* Add unit test

* lint

* Added tests.

* Accepted baselines.

* Emit 'exports.' if the shorthand is a general export.

* Accepted baselines.

* Emit 'Promise' decorator metadata return type for async methods

* Respond to PR comment

* Unescape identifiers used in code completion

* Make isDefinition required.

For the deprecated getOccurrencesAtPosition, isDefinition is always false.

* Add more isDefinition tests and fix computed property bug

* Fix bug: do unescaping in the right place, so that it only affects escaped javascript identifiers

* Use `isLiteralComputedPropertyDeclarationName`
2016-06-14 15:00:40 -07:00
Yui
f235bf7db8 [Transforms] Merge master 06/06/2016 (#8991)
* Remove check narrowing only certain types, add test showing issues with this

* string literal case test

* Reconcile fix with CFA work

* Defaultable -> NotNarrowable to align with use

* Missed a defaultable in comments

* Add test for narrowing to unions of string literals

* Rewrite isInStringLiteral to accomodate for unterminated strings

* Refactor signatureHelp to expose helper functions

* Add support for completion in string literals

* Remove unused check

* Use const instead of let

* Fix error

* Formatting changes

* Use shorthand properties

* Add failing test for #8738

* Sort baseline reference identifier by name

* Detects assignment to internal module export clause, fixes #8738

* add SharedArrayBuffer

fix

* Factor out assignment op check

* Add test for composite assignment

* Factor out the behaviour and handles x++ and ++x

* Handles ES3 default as identifier name

* Fix missing else statement

* isNameOfExportedDeclarationInNonES6Module

* Reorder options alphabetically

* Mark diagnostics, and skipDefaultLibCheck as internal

* Allow an import of "foo.js" to be matched by a file "foo.ts"

* Improve loadModuleFromFile code

* Respond to PR comments

* Respond to more PR comments

* Fix test

* Actually merge from master

* Revert to old tryLoad implementation

* Run fixupParentReferences when parsing isolated jsDocComment

* initial revision of unit test support for project system in tsserver

* Allow wildcard ("*") patterns in ambient module declarations

* Add non-widening forms of null and undefined

* Create separate control flows for property declarations with initializers

* Add regression test

* Allow trailing commas in function parameter and argument lists

* Add tests

* Remove unused variable

* Add null check and CR feedback

* Support shorthand ambient module declarations

* Revert "Merge pull request #7235 from weswigham/narrow-all-types"

This reverts commit ef0f6c8fe4f94a7e294cfe42d7025c9dca6535d5, reversing
changes made to 9f087cb62ade7a879e23c229df752fc8f87d679c.

* reuse the fixupParentReferences function

* Improve typing of && operator with --strictNullChecks

* Add test

* Respond to PR comments

* Respond to PR comments

* Add merging tests

* Use a function `stringify` to simplify calls to `JSON.stringify(xyz, undefined, 2)`

* Update tests

* Fix mistake

* Include indent in navigation bar protocol

Previously navbar01 test had indents when run in the browser but not when run from node. Now they run the same.

* Remove unnecessary restrictions in property access narrowing

* Fix fourslash test

* Add regression test

* Consider property declarations to be control flow containers

* Adding regression test

* Remove restriction on --target es5 and --module es6

* change type definition for Object.create

* Fix signature help

* Add "implicit any" warning for shorthand ambient modules

* Remove trailing whitespace

* Support using string values in enums for CompilerOptions in transpile methods

* Remove trailing whitespace in jakefile

* Make `jake runtests-browser` support test regexes with spaces

For example: `jake runtests-browser t="transpile .js files"` now works.

* Add another test

* factor out isJsxOrTsxExtension

* Move to a conformance test

* Revert "Revert "Merge pull request #7235 from weswigham/narrow-all-types""

This reverts commit fc3e040c5167868ed623612e8f33fb3beedf73b1.

* Use inclusive flag, as originally done, but include almost everything

* Add additional tests

* Respond to PR comments

* Fix typo

* add tests for tsserver project system

* Fix test

* Allow case comparison to undefined and null in strict null checking mode

* Remove incorrectly added tests

* check if moduleResolution when verifying that program can be reused

* more tests for module resolution change and exclude

* Fix linting issues

* Merge JSDoc of assignments from function expressions

* Allow nested assignments in type guards

* Add tests

* Improve order of parameter's merged jsdoc

* Force LF newlines for LKG builds/non debug builds
Fixes 6630

* Create intersection types in type guards for unrelated types

* Split commentsFunction test into expr/decl

And renumber.

* Remove TODO comments

* Accept new baselines

* Add tests

* Remove comments

* Fix test helper

* Recognize relative path using in outDir property (#9025)

* Recognize relative path using in outDir property

* Add projects tests

* Add project .json files

* Update baselines

* Add comments

* Add test case

The test passes in 1.8 and fails in master.

* Return trace when exception happens

* Remove Long-Done TODO

AFAIK, the harness sources have been concatenated into `run.js` for as long as I've known. This stops executing them twice (and in turn makes debugging tests much easier, since you no longer have to debug into eval'd code).

* Allow primitive type guards with typeof on right

Previously, only type guards of the form `typeof x === 'string'` were
allowed. Now you can write `'string' === typeof x`.

* Primitive type guards are now order independent

* Fix comments in tests

* Add handleing for classes

* Add more tests for target=es5 module=es6

* addExportToArgumentListKind

* Accept baseline

* Add more tests

* wip-fixing transforms

* Adds progress indicators to the runtests-parallel build task.

* Fixed typo

* Fix comment

* Add test for out-of-range error

* Use proper method of not resolving alias

* Fix module loading error

(commandLineOptions_stringToEnum would be undefined if optionDeclarations wasn't loaded yet)

* Port 8739

* Update tests

* Update baselines

* Contextually type return statement in async function

* Remove stale files

* Undo change

* Improve perf

* Improve tests

* Fix sourcemaps for debugging tests

* Allow --sourceRoot with --inlineSources option
Fixes #8445

* this in parameter initializers resolves to class

Accept baselines now that the test passes.

* Add tests for more kinds of import/export

* Fix7334 Disallow async in functionExpression and ArrowFunction (#9062)

* Error when using async modifier in function-expression and arrow-function when target es5

* Add tests and baselines

* Resolve function-this in parameter initialisers when explicitly provided

* Allow null/undefined guard with null/undefined on left

Also add a test with baselines.

* Code review comments

* Update more diagnostic messages ES6->2015

Fix #8996 CC @mhegazy.

* Fixes an issue with runtests-parallel when global mocha is not installed.

* Update LKG

* Add tests

* fix baselines

* Recommend runtests-parallel in CONTRIBUTING

* Only inlineSourceMap when debugging through jake-browser (#9080)

* Only inlineSourceMap when debugging through jake-browser

* Address PR: fix typo in opt's property

* Manually port tests from PR 8470

* minor fix: add missing return clause

* Support using string values in enums for CompilerOptions in transpile methods

* Support using string values in enums for CompilerOptions in transpile methods

# Conflicts:
#	tests/cases/unittests/transpile.ts

* Fix test helper

* Add test for out-of-range error

* Fix module loading error

(commandLineOptions_stringToEnum would be undefined if optionDeclarations wasn't loaded yet)

* Use camel-case instead of snake-case (#9134)

* Manually add tests for PR 8988

* Allow wildcard ("*") patterns in ambient module declarations

* Respond to PR comments

* Add another test

* Improve perf

* Improve tests

* Update baseline from merging with master

* Address PR comment

* Update baseline

* Refactor how we retrieve binding-name cache in module transformer

* Temporary accept so we get a clean run-tests result
2016-06-14 11:36:57 -07:00
Ron Buckton
cfa4388822 Replace legacy emitter with tree transforming emitter. 2016-06-07 10:32:03 -07:00
Ron Buckton
ee39c4e8d4 Merge branch 'master' into transforms-merge 2016-05-25 14:14:32 -07:00
Ron Buckton
81d5d2b6b6 Added 'extendedDiagnostics' option for comments/sourcemap measurements. 2016-05-24 13:18:24 -07:00
Ryan Cavanaugh
28f548a740 Recognize '-?' / '--?' in tsc 2016-05-24 12:12:38 -07:00
Anders Hejlsberg
db109d1a7f Add --skipLibCheck compiler option 2016-05-21 17:44:37 -07:00
zhengbli
9c92ec3a55 exclude outDir and add more default excludes 2016-05-19 16:10:04 -07:00
Yui
b68e93966a Fix 8482: Add Object.values and Object.entries (#8538)
* Add es2017.Object library file

* Add tests and baselines

* Fix unittest

* Add es2017 lib flag

* Update baselines

* Add tests and baselines

* Address PR: add tests

* Address PR: add tests
2016-05-10 14:22:00 -07:00
Paul van Brenk
fad25747a7 Merge pull request #8469 from Microsoft/tsconfigParsingImprovements
Add propertybag to parsed tsconfig.json file.
2016-05-06 13:33:01 -07:00
Paul van Brenk
8aff38e128 Add the entire tsconfig as a raw property to the parsed config. 2016-05-06 10:12:12 -07:00
zhengbli
076fe48c3a Add unit tests for tsconfig file list parsing 2016-05-05 14:49:41 -07:00
zhengbli
fdc7037bfc ignore dotted files and folders 2016-05-05 13:06:12 -07:00
Paul van Brenk
c866996f30 CR Feedback 2016-05-04 16:17:08 -07:00
Paul van Brenk
4bc2314cbe Add propertybag to parsed tsconfig.json file.
This allows consumers of the LS to read properties added to the tsconfig.json
without having to worry about dealing with comments.
2016-05-04 14:50:58 -07:00
Mohamed Hegazy
b4baee492f Polyfill String.prototyp.fill 2016-05-03 14:52:41 -07:00
Nathan Shively-Sanders
f8ab1a5ca6 Merge branch 'master' into transforms 2016-04-18 13:27:33 -07:00
Mohamed Hegazy
5f66c8766e Merge branch 'transforms' into moduleNameInOutput 2016-04-13 13:20:08 -07:00
Vladimir Matveev
e5e7d47782 merge with origin/master 2016-04-08 14:38:47 -07:00
Paul van Brenk
58efc2ee05 Merge pull request #7883 from Microsoft/listEmittedFiles2
Add option to list the emitted files as part of the compiler output.
2016-04-07 17:50:26 -07:00
Ron Buckton
1aa69921c6 Makes transforms the default 2016-04-07 17:07:12 -07:00
Paul van Brenk
097adc6b3a Remove message from 'help' 2016-04-07 16:47:52 -07:00
Nathan Shively-Sanders
3704ad74d1 Merge pull request #6739 from Microsoft/this-function-types
This function types
2016-04-07 10:31:01 -07:00
Vladimir Matveev
46d28f16cc added supports for 'types' compiler option 2016-04-06 13:49:25 -07:00
Paul van Brenk
5363b2d7ad Add option to list the emitted as part of the compiler output.
This is useful for incremental build scenarios.
2016-04-06 13:25:29 -07:00
Vladimir Matveev
e2a23fd598 remove compilationRoot parameter, use typesRoot/config file location as a root when computing primary locations 2016-04-05 16:33:11 -07:00
Yui
11887ccc29 Adjustmodularize lib
* Merge array, function, math, number, object, regexp, string into es2015.core

* Update baselines

* Add node.d.ts; need to fix head of the output

* Update unittests from add node as an option for --lib

* Move interface declaration into NodeJS namespace

* Add console into Node.d.ts

* Add compiler baseline-tests for using --lib node

* Change name from full.es2015 to es6. This is a es6 library file used when no --lib is specified and --target is es6

* Remove add node.d.ts into src/lib

Remove node.d.ts

Revert "Update unittests from add node as an option for --lib"

This reverts commit 51692736803d3f75905af695bed07249d3daf24b.

Revert "Add compiler baseline-tests for using --lib node"

This reverts commit 17e437b4c7afb5046539bc71cc32d9084b6f57a2.
2016-04-04 22:02:12 -07:00
Vladimir Matveev
aaaa9c0895 expose type reference resolution for external consumption 2016-04-01 12:41:01 -07:00
Ryan Cavanaugh
75922c4056 Address CR 2016-04-01 12:19:40 -07:00
Nathan Shively-Sanders
ce68932475 Merge branch 'master' into this-function-types 2016-03-31 10:46:03 -07:00
Nathan Shively-Sanders
e4ed7f904e Address PR comments 2016-03-30 15:01:16 -07:00
Yui
68bdbe04e7 Merge pull request #7715 from Microsoft/6974AddLibImplementation
6974 add lib implementation
2016-03-30 14:22:41 -07:00
Yuichi Nukiyama
e461d12cf9 change error message 2016-03-29 06:40:34 +09:00
Kanchalai Tanglertsampan
3fef5ba458 Implement --lib flag in the compiler and harness 2016-03-28 14:20:29 -07:00
Nathan Shively-Sanders
9e5f26048b Merge branch 'master' into this-function-types 2016-03-28 10:12:25 -07:00
Yuichi Nukiyama
b16f8e1be4 Throw error when tsconfig.json has excludes without exclude property 2016-03-28 21:23:59 +09:00
Nathan Shively-Sanders
a91cdccfc5 Add --noImplicitThis flag
It's basically another --noImplicitAny error, but one that would break
large amount of JavaScript-style code.
2016-03-25 16:37:28 -07:00
Nathan Shively-Sanders
c9f5f3d67e Remove --strictThisChecks 2016-03-25 15:41:37 -07:00
Anders Hejlsberg
3853bb86d0 Merge pull request #7140 from Microsoft/strictNullChecks
Non-nullable types
2016-03-21 16:52:43 -07:00
Anders Hejlsberg
413d9a639f Merge branch 'master' into strictNullChecks
Conflicts:
	src/compiler/diagnosticMessages.json
	src/compiler/types.ts
	tests/baselines/reference/typeGuardOfFormTypeOfEqualEqualHasNoEffect.symbols
	tests/baselines/reference/typeGuardOfFormTypeOfNotEqualHasNoEffect.symbols
2016-03-21 16:21:02 -07:00
Vladimir Matveev
497b4c341c revert changes in the signature of 'convertCompilerOptionsFromJson' 2016-03-19 20:59:32 -07:00
Ron Buckton
3c344987de Merge branch 'master' into transforms 2016-03-18 17:13:55 -07:00
Kanchalai Tanglertsampan
9e2df0459e Address PR 2016-03-16 16:35:51 -07:00
Kanchalai Tanglertsampan
266a92b1f3 Address PR 2016-03-16 15:29:13 -07:00
Kanchalai Tanglertsampan
f7a55fa5a2 Remove --lib 2016-03-16 14:08:49 -07:00
Kanchalai Tanglertsampan
92bee6a533 Unify error message for custom-type compiler option 2016-03-16 13:49:36 -07:00
Kanchalai Tanglertsampan
4d915e59d9 Using ts.filter instead of just .filter 2016-03-15 17:04:18 -07:00
Kanchalai Tanglertsampan
95b43dac29 Handle default compiler-options and typing-options 2016-03-15 16:30:11 -07:00
Kanchalai Tanglertsampan
f4e920e2c1 Add unittest for testing convert compiler-options and typing-options 2016-03-15 11:45:21 -07:00
Kanchalai Tanglertsampan
157b8e7456 Add a new unittest for command line parsing for --lib 2016-03-15 11:44:33 -07:00