9423 Commits

Author SHA1 Message Date
Nathan Shively-Sanders
b13de0547e JSDoc codefix:getTypeFromTypeNode >>> typeToString
Instead of trying to walk the type structure in the codefix, I changed
to call getTypeFromTypeNode in the checker and then calling
typeToString. Together, these two functions normalise out JSDoc.

Note that you only get `T | null` for `?T` if you have --strict on. This
is technically correct -- adding a null union does nothing without
strict -- but it would still serve as documentation.
2017-07-17 14:11:35 -07:00
Nathan Shively-Sanders
61c9f98eef Merge branch 'master' into parse-jsdoc-with-ts-type-parser 2017-07-14 15:04:06 -07:00
Nathan Shively-Sanders
172db13306 Parse more types in JSDoc function() syntax
Also some cleanup from PR comments
2017-07-14 14:34:32 -07:00
Nathan Shively-Sanders
bdc3f1f3f7 Address more PR comments 2017-07-14 13:29:44 -07:00
Daniel Rosenwasser
e8421827e0 Merge pull request #16600 from alexeagle/pretty2
Add missing newline in --pretty diagnostics formatter
2017-07-14 12:22:05 -07:00
Nathan Shively-Sanders
40ae42221e Better JSDoc generic errors and faster isInJSDoc 2017-07-14 11:07:20 -07:00
Nathan Shively-Sanders
f1145c35ca Improve JSDoc function checking
1. Remove checkJSDocFunctionType in favour of checkSignature.
2. Check that 'new', in addition to 'this', must be the first parameter.
3. Remove prematurely added JSDoc-quickfix test.
2017-07-14 10:15:30 -07:00
Nathan Shively-Sanders
6e861fd3e6 Remove JSDocConstructor/ThisType and just use named parameters 2017-07-14 09:36:12 -07:00
Andy
680bfbb705 Combine moduleHasNonRelativeName with isExternalModuleNameRelative (#16564) 2017-07-13 13:46:04 -07:00
Nathan Shively-Sanders
ac478a9720 Add missing word in error message 2017-07-13 13:37:35 -07:00
Nathan Shively-Sanders
bc69c7e6d1 Parse JSDoc types using the normal TS parser
This means that JSDoc types can include the full range of Typescript
types now. It also means that Typescript annotations can include JSDoc
types. This is disallowed with a new error, however. But Typescript can
still give the correct types to JSDoc that shows up in .ts files by
mistake. This can easily happen, for example with types like

```ts
var x: number? = null;
var y: ?string = null;
var z: function(string,string): string = (s,t) => s + t;

// less likely to show up, but still understood.
var ka: ? = 1;
```

In the future, I will add a quick fix to convert these into the correct
types.

Fixes #16550
2017-07-13 11:27:50 -07:00
Andy
c6a6467073 Remove unneeded ExportType and ExportNamespace flags (#16766) 2017-07-13 09:21:13 -07:00
Andy
69d3ca774a When adding completions for a module, don't get the type of the module if not necessary. (#16768)
* When adding completions for a module, don't get the type of the module if not necessary.

* Use SymbolFlags.Module alias
2017-07-13 09:20:40 -07:00
Andy
9a3847feac getSingleLineStringWriter: Use try-finally, and only one stringWriter (#16751)
* getSingleLineStringWriter: Use try-finally, and only one stringWriter

* Use a `usingSingleLineStringWriter` helper function

* Add assert
2017-07-13 08:13:49 -07:00
Andy
79b10081a9 getApplicableRefactors: Don't return undefined response (#16773) 2017-07-13 07:32:41 -07:00
Andy
dbbf051886 Add assertion to computePositionOfLineAndCharacter (#17121) 2017-07-13 06:49:28 -07:00
Yui
1c93531f0f Merge pull request #17025 from Microsoft/master-16763
[Master] Fix 16763
2017-07-12 16:36:04 -07:00
Andy
a0c672ac02 Add assertion that module / type reference names are defined (#17124) 2017-07-12 10:13:33 -07:00
Andy
815af7da17 getSwitchClauseTypes: exit early if getTypeOfSwitchClause is undefined (#16865) 2017-07-12 07:45:02 -07:00
Nathan Shively-Sanders
50f39102aa Merge pull request #17096 from Microsoft/improve-return-type-parse-error
Improve return type parse error
2017-07-12 07:18:23 -07:00
Daniel Rosenwasser
38f6db52ac Merge pull request #17079 from Microsoft/noTypeArgsSum
Declare 'sum' so that it doesn't require type arguments.
2017-07-12 00:09:58 -07:00
Andy
08030c7d02 Convert most of core.ts to accept ReadonlyArray (#17092)
* Convert most of core.ts to accept ReadonlyArray

* Fix lint

* Fix isArray
2017-07-11 17:39:33 -07:00
Yui
25f4e46638 Merge pull request #17082 from Microsoft/master-16201
[Master] Fix 16201: fix cannot find "object"
2017-07-11 17:13:01 -07:00
Daniel Rosenwasser
325f4b84cf Addressed feedback. 2017-07-11 15:32:31 -07:00
Nathan Shively-Sanders
1b1f257dbf Rename SignatureFlags enum and improve its usage
As requested in the PR comments
2017-07-11 14:49:47 -07:00
Nathan Shively-Sanders
8856ddfd15 Make enum private and fix fillSignature predicate 2017-07-11 10:45:25 -07:00
Nathan Shively-Sanders
b6ad43d4a5 Better error for wrong return (: vs =>) in types
It's very ambiguous in expression position, so impossible to give a
better message from the parser. For example:

let f = (x: number) => number => x + 1;
                    ~~
                    Should be ':'

But the parser doesn't know that 'number' isn't an expression now.
2017-07-11 10:08:42 -07:00
Andy
f45ccf541d In getDeclarationSpaces, treat a type alias as a SymbolFlags.Type, not a SymbolFlags.Value (#16624) 2017-07-11 09:54:42 -07:00
Nathan Shively-Sanders
fcc9823ac7 Switch fillSignature boolean params to single enum 2017-07-11 09:51:18 -07:00
Andy
2561ced1e3 Consistently use isInJavaScriptFile helper (#17075) 2017-07-11 07:26:45 -07:00
Andy
aa2d1008bf Completion for default export should be '.default' (#16742)
* Completion for default export should be '.default'

* Don't include empty string in name table

* getSymbolsInScope() should return local symbols, not exported symbols

* Fix bug: getSymbolAtLocation should work for local symbol too
2017-07-11 07:23:32 -07:00
Nathan Shively-Sanders
a94e0c36b0 Merge pull request #16969 from ikatyang/fix-16941
Add missing docs for module: 'none' in tsc --init
2017-07-10 16:54:54 -07:00
Kanchalai Tanglertsampan
e5f482d339 Treat both object and Object the same 2017-07-10 15:16:34 -07:00
Daniel Rosenwasser
d25fd23e04 Declare 'sum' so that it doesn't require type arguments. 2017-07-10 14:35:09 -07:00
Kanchalai Tanglertsampan
f15909bfe0 Merge branch 'master' into master-16763 2017-07-10 13:13:35 -07:00
Ron Buckton
bb3253e544 Merge pull request #17044 from filipesilva/patch-1
Allow visitors to return undefined
2017-07-10 11:47:48 -07:00
Andy
48876731b8 Type-check sum (#16823) 2017-07-10 11:44:56 -07:00
Andy
bffde588cc Improve performance of JSDoc tag utilities (#16836)
* Improve performance of JSDoc tag utilities

* Use emptyArray instead of null, and address PR comments
2017-07-10 11:26:59 -07:00
Andy
8c3f5e2208 Remove createFileMap (#16810)
* Make `createFileMap` an internal detail of `program.ts`

* Remove createFileMap

* Clean up calls to `toPath`
2017-07-10 11:24:17 -07:00
Andy
12163cc02e Allow to narrow the type of an import (#16658)
* Allow to narrow the type of an import

* Assume alias is initialized
2017-07-10 09:18:35 -07:00
Filipe Silva
ae533551c2 Allow visitors to return undefined
While implementing `ts.Visitor`, it is possible to return `undefined` in order to drop a node. However, the typings do not reflect this and only allow to return `Node | Node []`.

This PR extends the typings to allow `undefined` as well.
2017-07-09 18:50:45 +01:00
Anders Hejlsberg
ff5d245dcb Merge pull request #16954 from Microsoft/optimizeTypeRelations
Optimize structured type relations
2017-07-07 16:18:35 -10:00
Anders Hejlsberg
b866cd4969 Merge pull request #16952 from Microsoft/optimizeForEachChild
Optimize forEachChild function
2017-07-07 16:18:00 -10:00
Kanchalai Tanglertsampan
7e395c2f88 import keyword a left-hand-side expression 2017-07-07 15:53:24 -07:00
Andy
e6256d43c4 Inline getDestructuringParameterName (#16973) 2017-07-07 10:34:50 -07:00
Andy
17578e8a5d Use Map<true> for sets (#16972) 2017-07-07 10:34:36 -07:00
Andy
81f8151e3a Use 'push' and 'pop' methods instead of using array.length (#16979) 2017-07-07 10:22:59 -07:00
Andy
ba8e5a7e24 Never return undefined from getExportsOfModule (#17013) 2017-07-07 10:06:12 -07:00
Andy
e7dc2a67ca Enable "object-literal-shorthand" lint rule (#16987) 2017-07-07 07:26:58 -07:00
ikatyang
a79240fbc6 Add missing docs for module: 'none' in tsc --init 2017-07-07 18:25:22 +08:00