19056 Commits

Author SHA1 Message Date
Nathan Shively-Sanders
43981eaa48 Use type param constraints for computed prop types 2017-07-25 09:38:55 -07:00
vvakame
d1459f7e9c Add SpaceBetweenOpenParens rule 2017-07-25 18:24:04 +09:00
Ron Buckton
d74cb24640 Merge pull request #17354 from weswigham/fix-parameter-parsing-infinite-loop
Fix parameter parsing infinite loop
2017-07-24 18:21:10 -07:00
Andy
a70b50ae7c getResolvedModule: Don't need to call hasResolvedModule (#16423)
* getResolvedModule: Don't need to call hasResolvedModule

* Don't call tryGetModuleNameFromDeclaration on a synthesized importNode

* Apply suggested changes
2017-07-24 17:51:37 -07:00
Wesley Wigham
98d5830831
Use scanner position instead of node members 2017-07-24 17:51:35 -07:00
Anders Hejlsberg
1d9c3e1c22 Add repro 2017-07-24 17:07:24 -07:00
Anders Hejlsberg
a48b2229cb Accept new baselines 2017-07-24 17:07:11 -07:00
Anders Hejlsberg
f6ed29df3a Add tests 2017-07-24 17:06:45 -07:00
Wesley Wigham
06beee1cc8
Much simpler fix, rolls in really old fix, removed unused comment 2017-07-24 15:16:21 -07:00
Anders Hejlsberg
47e6aef858 Given T extends Foo, make Partial<T> related to Partial<Foo> 2017-07-24 13:59:43 -07:00
Andy
eee4c618e2 Indent list of open files (#17255) 2017-07-24 13:32:43 -07:00
Andy
7702d15cf3 Add current time to tsserver logs (#17268) 2017-07-24 13:32:23 -07:00
Wesley Wigham
7040df2094
Tests covering the bug 2017-07-21 17:30:01 -07:00
Wesley Wigham
e7bf44e820
Fix for loop which retains jsdoc behaviors 2017-07-21 17:20:56 -07:00
Nathan Shively-Sanders
59961394cb @param parsing:const enum to improve readability 2017-07-21 15:07:20 -07:00
Nathan Shively-Sanders
e942bbb6f2 Test: jsdoc @param type literals 2017-07-21 14:49:07 -07:00
Nathan Shively-Sanders
8d2d226aca Update JSDocParsing unit test baselines 2017-07-21 14:48:48 -07:00
Nathan Shively-Sanders
7ff91c1e1c Parse jsdoc type literals in params
Now Typescript supports the creation of anonymous types using successive
`@param` lines in JSDoc:

```js
/**
 * @param {object} o - has a string and a number
 * @param {string} o.s - the string
 * @param {number} o.n - the number
 */
function f(o) { return o.s.length + o.n; }
```

This is equivalent to the Typescript syntax `{ s: string, n: number }`,
but it allows per-property documentation, even for types that only need
to be used in one place. (`@typedef` can be used for reusable types.)

If the type of the initial `@param` is `{object[]}`, then the resulting
type is an array of the specified anonymous type:

```js
/**
 * @param {Object[]} os - has a string and a number
 * @param {string} os[].s - the string
 * @param {number} os[].n - the number
 */
function f(os) { return os[0].s; }
```

Finally, nested anonymous types can be created by nesting the pattern:

```js
/**
 * @param {Object[]} os - has a string and a number
 * @param {string} os[].s - the string
 * @param {object} os[].nested - it's nested because of the object type
 * @param {number} os[].nested.length - it's a number
 */
function f(os) { return os[0].nested.length; }
```

Implementation notes:

1. I refactored JSDocParameterTag and JSDocPropertyTag to
JSDocPropertyLikeTag and modified its parsing to be more succinct. These
changes make the overall change easier to read but are not strictly
required.
2. parseJSDocEntityName accepts postfix[] as in `os[].nested.length`,
but it doesn't check that usages are correct. Such checking would be
easy to add but tedious and low-value.
3. `@typedef` doesn't support nested `@property` tags, but does support
`object[]` types. This is mostly a practical decision, backed up by the
fact that usejsdoc.org doesn't document nested types for `@typedef`.
2017-07-21 14:04:14 -07:00
Mine Starks
441daa4e19 Merge pull request #17302 from minestarks/removeimportfix
Bugs in missing import codefix
2017-07-21 10:22:24 -07:00
Andy
f0bd91c314 Convert Array to ReadonlyArray/Push in commandLineParser.ts (#17323) 2017-07-21 07:16:22 -07:00
Mine Starks
9f6ec635a4 Cleaner path splitting, refine file extension and case sensitivity handling 2017-07-20 16:12:07 -07:00
Mine Starks
98b14e34ca Fix quote styles to match 2017-07-20 15:10:29 -07:00
Armando Aguirre
fe86d2fc06 Merge pull request #17257 from armanio123/FixNodeModulesTodos
Added node_modules path check on getTodoComments method.
2017-07-20 14:58:36 -07:00
Ron Buckton
8fa1d2e3e6 Merge pull request #17141 from Microsoft/master-17060
Fix 17060 : incorrect emit for dynamic import inside elements of  export class declaration
2017-07-20 12:11:10 -07:00
Wesley Wigham
7cb8ce4346 Fix exceptions on empty tuple errors (#17311)
* Fix exceptions on empty tuple errors

* Remove bonus semicolon

* Invert condition
2017-07-20 10:09:55 -07:00
Andy
1f09af9ab6 simplify isFileSystemCaseSensitive test (#17169) 2017-07-20 10:02:59 -07:00
Andy
c60774b4c6 Make many 'static' variables readonly (#17306) 2017-07-20 08:54:47 -07:00
Nathan Shively-Sanders
759ee288f2 Merge pull request #17314 from gcnew/checkTypeGuardConstraintConformance
Check type guard constraint conformance
2017-07-20 07:49:39 -07:00
Andy
53e4040ceb Remove duplicate emptyArrays (#17305) 2017-07-20 06:45:22 -07:00
Nathan Shively-Sanders
25454de2a3 Merge pull request #17313 from Microsoft/fix-tslint-typeOperatingSpacingRule
Fix typeOperatingSpacingRule:use ReadonlyArray
2017-07-19 17:58:53 -07:00
Wesley Wigham
ed87b40902 Fix linter (#17312)
We just merged a change which makes the `.types` member of a union or intersection type a readonly array. Our lint rule's type annotation needs to reflect that.
2017-07-19 17:06:31 -07:00
gcnew
0654fa285c Added tests 2017-07-20 02:59:33 +03:00
Nathan Shively-Sanders
ca2a8e8518 Fix typeOperatingSpacingRule:use ReadonlyArray 2017-07-19 16:59:27 -07:00
gcnew
e52ed1a23a Check the return type of type guard functions 2017-07-20 02:49:20 +03:00
Armando Aguirre
9bdd17e842 Added explanation comment for excluding files. 2017-07-19 15:42:01 -07:00
Andy
f37d9068ff Fix configure-nightly script to match new contents of core.ts (#17014)
* Fix configureNightly script to match new contents of core.ts

* Use ts.Debug.assert

* Use a regexp for parsePackageJsonVersion
2017-07-19 14:47:25 -07:00
Andy
d99694614a Simplify use of array helpers (#17301) 2017-07-19 11:23:41 -07:00
Andy
d918b8ad4e Remove duplicate helper (#17296) 2017-07-19 11:23:14 -07:00
Mine Starks
15d294d350 Bugs in missing import codefix
- We didn't locate the package.json correctly in cases where the module to be imported is in a subdirectory of the package
- We didn't look at the types element in package.json (just typings)
- We didn't remove /index.js from the path if the main module was in a subdirectory

Fixes #16963
2017-07-19 11:02:49 -07:00
Andy
cfa94c2d34 Binder: handle JS property assignment that comes after a method declaration with the same name (#16830) 2017-07-19 09:11:50 -07:00
Andy
ea0bce511b MultiStepOperation: No need to create a 'NextStep' object, just use self as the NextStep (#17174) 2017-07-19 07:52:18 -07:00
Wesley Wigham
8075353356 Appropriately parenthesize keyof and typeof queries in array types (#17272)
* Appropriately parenthesize keyof and typeof queries when they are array types

* Fix test and then the same bug in the symbol writer
2017-07-18 15:08:53 -07:00
Andy
08a57d82cd Add 'clear' helper (#17209) 2017-07-18 11:08:44 -07:00
Andy
194c2bc2ca Make NodeArray readonly (#17213)
* Make NodeArray readonly

* Fix bug: use emptyArray instead of undefined

* Fix bug: Don't expose MutableNodeArray

* Undo trailing whitespace changes
2017-07-18 10:38:21 -07:00
Andy
80b19a09a1 Introduce a ReadonlyMap interface and use it in core.ts (#17161) 2017-07-18 10:26:11 -07:00
Andy
0a8ddca775 getJSDocParameterTags: no need to handle JSDocFunctionType, just return undefined (#16837)
* getJSDocParameterTags: no need to handle JSDocFunctionType, just return undefined

* Fix type error
2017-07-18 10:22:52 -07:00
Nathan Shively-Sanders
fb89d47508 Merge pull request #17252 from Microsoft/contextually-type-this-in-object-literals-in-javascript
Contextually type this in object literals in JS
2017-07-18 10:18:10 -07:00
Nathan Shively-Sanders
95f5bc1ee0 Add unknown property to test of contextual this type 2017-07-18 10:01:22 -07:00
Andy
068b17a1b8 ParameterDeclaration: name may be undefined (#17074) 2017-07-18 09:47:19 -07:00
Wesley Wigham
695514290f Fix #17023 (#17180)
* Fix #17023

* Be more general when handling matching references through binding elements

* Better cache key, PR feedback

* Deeper tests, better cache key handling
2017-07-18 09:12:25 -07:00