Commit graph

24889 commits

Author SHA1 Message Date
王文璐
0d3adffd1a accept baseline 2018-08-29 18:42:02 +08:00
王文璐
597bb0e764 Merge branch 'master' into strictParameter 2018-08-29 18:28:36 +08:00
Andy
cff04e6050
Ensure JsonSourceFile has all the non-optional properties of SourceFile (#26162)
* Ensure JsonSourceFile has all the non-optional properties of SourceFile

* Set properties in parseSourceFile
2018-08-28 16:43:14 -07:00
Sheetal Nandi
199d496ef1
Merge pull request #26716 from Microsoft/lazyConfiguredProjectsFromExternalProject
Add option --lazyConfiguredProjectsFromExternalProject to enable lazy load of configured projects referenced by external project
2018-08-28 16:19:01 -07:00
Sheetal Nandi
03bb5d170e Use protocol.UserPreferences in server to store UserPreferences 2018-08-28 15:53:00 -07:00
Sheetal Nandi
52fef42baa Merge branch 'master' into lazyConfiguredProjectsFromExternalProject 2018-08-28 14:49:00 -07:00
Sheetal Nandi
fc90b8f98b lazyConfiguredProjectsFromExternalProject as userpreference instead of command line option 2018-08-28 14:41:22 -07:00
Andy
9106fdbc47
Support signature help for type parameters of a type (#26702) 2018-08-28 14:21:09 -07:00
Andy
552bd1c8a2
Support import fix/completions for export = (#25708) 2018-08-28 13:04:11 -07:00
Andy
b94061c587
getEditsForFileRename: Avoid changing import specifier ending (#26177)
* getEditsForFileRename: Avoid changing import specifier ending

* Support .json and .jsx extensions

* Restore typeRoots tests

* Fix json test

* When --jsx preserve is set, import ".tsx" file with ".jsx" extension

* Support ending preference in UserPreferences
2018-08-28 13:03:24 -07:00
Sheetal Nandi
96e61407c5 Add option --lazyConfiguredProjectsFromExternalProject to enable lazy load of configured projects referenced by external project
Fixes #26696
2018-08-28 12:49:09 -07:00
Andy
3931b72118
noUnusedLocals: Destructuring assignment is a write (#26365)
* noUnusedLocals: Destructuring assignment is a write

* Code review

* Clarify test
2018-08-28 11:43:45 -07:00
Sheetal Nandi
530a530ac0
Merge pull request #26590 from Microsoft/buildRefactoring
Refactor ts build and report watch status when doing --build --watch
2018-08-28 11:43:35 -07:00
Ryan Cavanaugh
6c2e851689
Merge pull request #26317 from Kingwl/parameter-initializer-lookup-fix
add special check for parameter initializer lookup if targeting es2015+
2018-08-28 11:33:58 -07:00
Sheetal Nandi
868cf3e6de renames per PR feedback 2018-08-28 11:21:35 -07:00
Andy
b183418124
Fix bug: Don't go to *any* constructor signature for jsx element (#26715) 2018-08-28 11:06:14 -07:00
Andy
1b5de9d16e
Uncomment tests fixed with #23631 (#26700) 2018-08-28 10:25:00 -07:00
Andy
1b1ca9ebf0
Memoize collecting set of all imported packages (#26263) 2018-08-28 09:41:46 -07:00
csigs
c3eb8e8161
LEGO: Merge pull request 26713
LEGO: Merge pull request 26713
2018-08-28 09:11:03 -07:00
csigs
fb0cd6c0e0 LEGO: check in for master to temporary branch. 2018-08-28 16:10:36 +00:00
王文璐
f1c5fa5b35 Merge branch 'master' into strictParameter 2018-08-28 17:37:58 +08:00
王文璐
8869f39c25 accept more case 2018-08-28 16:41:26 +08:00
王文璐
d758075597 add special check for parameter initializer lookup if targeting es2015+ 2018-08-28 15:02:28 +08:00
Anders Hejlsberg
ac0d5da631
Merge pull request #26679 from Microsoft/improveGetTypeOfExpression
Improve control flow analysis of type assertions
2018-08-27 18:30:16 -07:00
Anders Hejlsberg
bd40583beb
Merge pull request #26698 from Microsoft/indexedAccessConstraints
Improve indexed access type relations
2018-08-27 18:14:43 -07:00
Andy
7223945666
Use array helper in computeCommonSourceDirectory and remove two unnecessary tests (#26416) 2018-08-27 17:03:30 -07:00
Nathan Shively-Sanders
a2e4a282e7
Get [type] parameter types from @type tag (#26694)
* Get [type] parameter types from @type tag

Previously only the return type was used in cases like this:

```js
/** @type {<T>(param?: T) => T | undefined} */
function g(param) {
  return param;
}
```

Now the type parameters from the type tag are used, and the compiler
gets the type of the parameter by using the position in the signature of
the type tag.

Fixes #25618

* Fix split ifs according to PR comments
2018-08-27 16:52:35 -07:00
Anders Hejlsberg
d369cecd10 Accept new baselines 2018-08-27 16:06:26 -07:00
Anders Hejlsberg
9f83958dbe Add tests 2018-08-27 16:06:17 -07:00
Andy
4cf5774c5e
Add tsserver test for completions and avoid excess properties (#25622) 2018-08-27 16:04:02 -07:00
Anders Hejlsberg
eeabd527ca Examine all constraints of indexed access types in relations 2018-08-27 15:50:26 -07:00
csigs
9938f3109d
LEGO: Merge pull request 26697
LEGO: Merge pull request 26697
2018-08-27 15:11:04 -07:00
csigs
dfd6aa878c LEGO: check in for master to temporary branch. 2018-08-27 22:10:39 +00:00
Nathan Shively-Sanders
b50c37de78
No assert for nameless typedefs (#26695)
The assert is over-optimistic and should be removed until we can parse
every possible thing that people might put in a JSDoc type position.

Fixes #26693
2018-08-27 14:12:14 -07:00
Wesley Wigham
0dbad04c3f
Distribute indexed accesses when simplifying them (#26281)
* unknownify accesses

* Move to simplify to break less with fewer changes

* Accept baselines for now

* Always propegate any as an index type

* Fix flow control in the presence of simplifiable types

* Add spy repro from #25181

* Retain errorType when it is used as a marker for the lack of a constraint

* Small refinement

* Add new test

* Move most potentially recursive types from isIdenticalTo into structuredTypeRelatedTo to match the non-identity relations

* Fix nits

* Doesnt need to be undefineable at all
2018-08-27 13:32:01 -07:00
Andy
0a59da1a2c
In pickLongestCandidateSignature, instantiate using inferred type arguments (#26646) 2018-08-27 10:30:25 -07:00
Nathan Shively-Sanders
6419240ab2
Declaration emit includes function properties (#26499)
* Declaration emit includes function properties

It does this by printing the type as an object literal type:

```ts
function f() { }
f.p = 1
```

Appears in a d.ts as

```ts
declare var f: {
  (): void;
  p: number;
}
```

It would also be possible to represent it as a namespace merge. I'm not
sure which is better.

```ts
declare function f(): void;
declare namespace f {
  export var p: number;
}
```

In order to avoid a private-name-used error (though I think it was
actually *unused*), I also had to change the nodeBuilder code to match.
This is arguably harder to read. So it's possible that I should instead
keep the nodeBuilder version as `typeof f` and make an exception for
private name use.

* Emit namespace merge instead of object type

This makes the change smaller, overall.

* Fix isJSContainerFunctionDeclaration+namespace merges

Also improve emit style to match other namespace emit.

* Add isPrivate + test case from PR comments
2018-08-27 10:29:53 -07:00
Andy
e411381266
Fix bug: Don't let empty signature documentation override other documentation (#26638) 2018-08-27 09:38:52 -07:00
TypeScript Bot
61f6d0380a Update user baselines (#26687) 2018-08-27 08:54:02 -07:00
Anders Hejlsberg
a1c373c3c7 Accept new baselines 2018-08-25 18:25:20 -07:00
Anders Hejlsberg
0c759b8194 Add regression test 2018-08-25 18:25:14 -07:00
Anders Hejlsberg
e852627df0 Add early out for type assertions in getTypeOfExpression 2018-08-25 18:25:02 -07:00
Anders Hejlsberg
73ec5964ef
Merge pull request #26678 from Microsoft/fixReturnOnlyInference
Fix logic that infers from return types only
2018-08-25 17:29:08 -07:00
Anders Hejlsberg
ed97443ab6 Accept new baselines 2018-08-25 16:09:25 -07:00
Anders Hejlsberg
09bc7505a7 Add regression test 2018-08-25 16:09:18 -07:00
Anders Hejlsberg
9c551a107a Ignore parameters when inferring from return type only signature 2018-08-25 16:09:08 -07:00
Ryan Cavanaugh
b5998d9b49
Merge pull request #26625 from ajafff/revert-destructuring-private-computed-name
Revert #26360: Don't error on destructure of private property with computed property syntax
2018-08-24 15:54:34 -07:00
Nathan Shively-Sanders
0043ba16b1
Allow weak type detection for intersection sources (#26668)
Previously, intersections were only allowed as targets, but this was
just an artifact of the original implementation, which operated inside
the structural part of isRelatedTo. Removing this restriction catches
subtle bugs in React user code, where a function named `create` returns
a mapped type whose types are all branded numbers. The display of these
properties, for some original type `T`, is not `number & { __ }` but
the much-less-obvious `RegisteredStyle<T>`.
2018-08-24 10:30:39 -07:00
TypeScript Bot
bdb7c351a2 Update user baselines (#26664) 2018-08-24 08:30:21 -07:00
Wenlu Wang
8ba501926a try get add missing member return type from context (#26250)
* try get add missing member return type from context

* support contextual type
2018-08-23 21:31:53 -07:00