9417 Commits

Author SHA1 Message Date
Nathan Shively-Sanders
bdc3f1f3f7 Address more PR comments 2017-07-14 13:29:44 -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
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
Wesley Wigham
4b19eb3200 Remove duplicate entries from tsconfig files (#16991) 2017-07-06 15:56:34 -07:00
Wesley Wigham
07e8263204 Start using a union for FunctionLike things (#16988)
* Start using a union for FunctionLike things

* Rename to shorter name
2017-07-06 14:46:15 -07:00
Wesley Wigham
4e6b2f3c93 Created a branded type for identifier-escaped strings (#16915)
* Created a branded type for escaped strings

Then flowed it throughout the compiler, finding and fixing a handful of
bugs relating to underscore-prefixed identifiers in the process.
Includes a test for two cases noticed - diagnostics from conflicting
symbols from export *'s, and enum with underscore prefixed member emit.

* Correctly double underscores WRT mapped types

* Add fourslash tests for other fixed issues

* use function call over cast

* Update forEachEntry type accuracy

* Just use escaped names for ActiveLabel

* Remove casts from getPropertyNameForPropertyNameNode

* This pattern has occurred a few times, could use a helper function.

* Remove duplicated helper

* Remove unneeded check, use helper

* Identifiers list is no longer escaped strings

* Extract repeated string-getting code into helper

* Rename type and associated functions

* Make getName() return UnderscoreEscapedString, add getUnescapedName()

* Add list of internal symbol names to escaped string type to cut back on casting

* Remove outdated comments

* Reassign interned values to nodes, just in case

* Swap to string enum

* Add deprecated aliases to escapeIdentifier and unescapeIdentifier

* Add temp var

* Remove unsafe casts

* Rename escaped string type as per @sandersn's suggestion, fix string enum usages

* Reorganize double underscore tests

* Remove jfreeman from TODO

* Remove unneeded parenthesis
2017-07-06 14:45:50 -07:00
Arthur Ozga
ad291d924d Merge pull request #16748 from aozgaa/implementOptionCrash
visit question token
2017-07-06 13:51:15 -07:00
Anders Hejlsberg
f18a177c97 Merge branch 'master' into optimizeTypeRelations 2017-07-05 07:01:38 -10:00