Commit graph

18770 commits

Author SHA1 Message Date
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
Sheetal Nandi 1155c37fcb Merge branch 'master' into watchImprovements 2017-07-20 09:49:30 -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
Nathan Shively-Sanders 7d7a06dbc2 Merge pull request #17250 from Microsoft/quickfix-jsdoc-in-ts
Quickfix jsdoc in Typescript files
2017-07-18 08:59:19 -07:00
Nathan Shively-Sanders 1b7faf10ac Merge pull request #17254 from Microsoft/generic-Object-jsdoc-creates-index-signature
JSDoc:Object<string, T> creates index signature
2017-07-18 08:48:56 -07:00