Commit Graph

26317 Commits

Author SHA1 Message Date
Ron Buckton b006287cb1 Refactor and clean up sourcemap decoder 2018-09-04 17:50:06 -07:00
Wesley Wigham 4ac8976750 Always check index type validity for all types when an error node is present so we always issue an error (#26789)
* Always check index type validity for all types when an error node is present so we always issue an error

* Change type a bit
2018-09-04 16:00:28 -07:00
Wesley Wigham ca662419e8 Dont consider export specifiers visible in their local scope (#26884) 2018-09-04 16:00:10 -07:00
Wesley Wigham f1370ecd54 Allow special assignments to have a contextual type of their declared type if present (#26802)
* Allow special assignments to have a contextual type of their declared type if present

* Expand change to cover all js special assignments

* Remove extraneous line
2018-09-04 15:58:18 -07:00
Tim Schaub 262ea5b06e Skip asterisks after newline when parsing JSDoc types (#26528)
* Skip asterisks after newline when parsing JSDoc types

* Single boolean expression

* Test for parsing and printing multiline function signatures with *
2018-09-04 15:41:08 -07:00
Nathan Shively-Sanders 64ac5a53f4 Fixes for type parameter name resolution in JS (#26830)
* check for expando initializers in resolveEntityName

when resolving type parameters in a prototype property assignment
declaration. For example, this already works:

```js
/** @template T */
function f(x) { this.x = x }
/** @returns {T} */
f.protototype.m = function () { return this.x }
```

This now works too:

```js
/** @template T */
var f = function (x) { this.x = x }
/** @returns {T} */
f.prototype.m = function () { return this.x }
```

Fixes #26826

* Lookup type parameters on prototype-assignment methods

In the same way that they're looked up on prototype-property methods.

That is, this previously worked:

```js
/** @template T */
function f() { }
/** @param {T} p */
f.prototype.m = function () { }
```

And this now works too:

```js
/** @template T */
function f() { }
f.prototype = {
  /** @param {T} p */
  m() { }
}
```

Note that the baselines still have errors; I'll file a followup bug for
them.

* Look up types on property assignments too
2018-09-04 14:47:18 -07:00
Nathan Shively-Sanders 540e8b9eb0 Collect jsdoc tags for type parameters (#26824)
Before the template tag, there was no reason to do this, but now you can
add JSDoc for type parameters in Typescript.
2018-09-04 09:29:19 -07:00
Klaus Meinhardt 239a7b9a4f better condition for file include exhaustiveness check
As `files` always contains declaration files of external libraries, lib files and declaration files from typeRoots, the previous condition evaluated to false for probably all projects out there.
This changes the condition to compare array length after filtering out all declaration files.
That avoids unnecessary work of path normalization in the common case where everything is ok.
2018-09-04 13:35:57 +02:00
Minh Nguyen aaa723e2d2 Enable allowSyntheticDefaultImports if esModuleInterop is enabled
Fixes #26193.
2018-09-04 11:07:29 +01:00
christian c87ca2f1ab Fix diagnostic reporting for empty files in tsconfig 2018-09-03 22:57:26 -04:00
王文璐 8349396dd6 Merge branch 'master' into fix_lookup_regression_again_and_again 2018-09-03 16:24:50 +08:00
Klaus Meinhardt d519e3f21e hand over to LanguageServiceHost.readDirectory 2018-09-03 09:51:02 +02:00
Klaus Meinhardt 3806ee7406 Assert CompilerHost.readDiretory for projectReferences with include
Fixes: #26785
2018-09-02 21:42:38 +02:00
Anders Hejlsberg 059fcc9aa9 Defer reduction of identical function types in unions and intersections 2018-09-02 08:58:00 -07:00
Matt McCutchen f2d26fd0bb Argument arity error should only consider signatures with correct type
argument arity.

Fixes #26835.
2018-09-01 19:48:47 -04:00
Sheetal Nandi 45101491c0 Merge pull request #26782 from Microsoft/reportFileChangeDetectedOnce
Report file change detected only once when save takes place multipletimes before timeout
2018-08-31 15:26:03 -07:00
Sheetal Nandi f1a179a314 Narrowing unknown by typeof object to object | null
Fixes #26327
2018-08-31 15:24:53 -07:00
Sheetal Nandi e41dbcdccd Support json module emit when module emit is commonjs, amd, es2015 or esnext
Fixes #25755 and #26020
2018-08-31 14:05:14 -07:00
Sheetal Nandi 9eb0c9a88f Use widened type (just like importing using module.exports = in js file)
Fixes #26429
2018-08-31 14:04:30 -07:00
Ryan Cavanaugh cbdfc01e25 Merge pull request #26794 from samlanning/fix-equalownproperties
Housekeeping: Fix equalOwnProperties
2018-08-31 13:58:25 -07:00
Ryan Cavanaugh 183072b30e Revert #26762, #26726, and #26317 in preparation for a clean PR fixing all the issues. 2018-08-31 13:06:22 -07:00
csigs 718c2cce9a LEGO: check in for master to temporary branch. 2018-08-31 16:10:42 +00:00
Benjamin Lichtman 6ddf75209a Merge pull request #26749 from uniqueiniquity/getWholeType
Use correct type for async refactoring diagnostics
2018-08-31 09:09:25 -07:00
Nathan Shively-Sanders c929e74310 Add [Constructor]Parameter types to lib.d.ts (#26243) 2018-08-31 07:46:16 -07:00
Nathan Shively-Sanders cc3d011333 Infer this parameters (#26800)
Previously we didn't. I can't remember why, probably because I
overlooked it in the initial PR.
2018-08-31 07:45:34 -07:00
王文璐 40470ad6bc fix lookup regression again and again 2018-08-31 16:45:25 +08:00
Anders Hejlsberg 61b0e1d946 Merge branch 'master' into fixWeakObjectRelationCheck
# Conflicts:
#	tests/baselines/reference/infiniteConstraints.errors.txt
2018-08-30 17:22:37 -07:00
Benjamin Lichtman 64bbf8925c Allow for undefined in type 2018-08-30 16:53:46 -07:00
Nathan Shively-Sanders b687caf3eb No excess property error for spread properties (#26798)
That is, properties in an object literal type that came from a spread
assignment never cause an excess property error.
2018-08-30 16:16:58 -07:00
Wesley Wigham cd37e41d3d Make finer-grained errors get reported on function arguments (#26784) 2018-08-30 15:45:06 -07:00
Mine Starks 2fe3499153 Fix faulty path handling 2018-08-30 15:19:51 -07:00
Sam Lanning 2c41d8b44e Fix equalOwnProperties
equalOwnProperties would incorrectly report two map-like objects as equal in
the case where a property defined in `left` was not defined in `right` and
whose value was considered "equal" to undefined by the equalityComparer.

This bug was found by an alert on LGTM.com
2018-08-30 14:08:24 -07:00
Sam Lanning 65fa0128bb Add test for ts.equalOwnProperties 2018-08-30 14:08:20 -07:00
Ryan Cavanaugh 2deb3189de Merge pull request #26788 from ajafff/remove-useless-condition
remove useless condition
2018-08-30 13:36:11 -07:00
Nathan Shively-Sanders d3f96015f1 Fix namespace expando merge (#26690)
* Allow JSContainers to merge with namespaces

Expando functions marked with JSContainer previously failed to merge
with namespaces. This change adds JSContainer to ValueModuleExcludes,
allowing this kind of merge.

* Improve symbol flags to fix namespace/expando merging

Calls to bindPropertyAssignment now provide which special assignment
kind they originated from. This allows better symbol flags to be set:

1. Property assignments get the FunctionScopedVariable flag, since they are
equivalent to a `namespace` exporting a `var`.
2. Prototype property assignments get the Method flag if the initialiser
is functionlike, and Property otherwise.
3. Prototype assignments get the flag Property.

(3) is still not entirely correct (it's missing the Prototype flag),
but is what existed previously. I'll try adding the Prototype flag to
see whether it changes any baselines.

* Add cross-file merge test

* Update missed baselines

* Namespace declarations are primary for merging purposes

Also, property-assignments go back to being property declarations, not
function-scoped variable declarations

* Revert unneeded changes

* Revert unneeded changes (in a codefix this time)

* Put JSContainer on all assignment declarations

This allows most of the new special-case merge code to go away. It now
uses the JSContainer special-case code, which already exists.

* Missed comment

* Fix extra newline lint
2018-08-30 13:18:50 -07:00
Klaus Meinhardt b2850ee467 remove useless condition 2018-08-30 22:13:39 +02:00
Anders Hejlsberg a2928b8fd3 Optimize relationship checks for arrays and tuples 2018-08-30 13:13:21 -07:00
Anders Hejlsberg 316739e1c0 Exclude generic types from weak object checks 2018-08-30 12:46:29 -07:00
Sheetal Nandi 496b18ef5e Report file change detected only once when save takes place multiple times before timeout 2018-08-30 11:38:34 -07:00
Tim Schaub 20a2b0cade Ignore newline and asterisk when parsing JSDoc typedef (#26775) 2018-08-30 10:01:33 -07:00
Wenlu Wang 038f665171 fix lookup regression again (#26762)
* fix lookup regression again

* add test case
2018-08-30 08:48:49 -07:00
Nathan Shively-Sanders c327ab40bc Make SymbolFlags.ObjectLiteral a Value (#26752)
Previously it was a Type

We couldn't think of a way to observe this change since object literals
don't merge with anything. Ideas?
2018-08-30 08:39:39 -07:00
Sheetal Nandi d5b7edba8a Merge pull request #26751 from Microsoft/declarationEmitWithComposite
Correctly mark visibile nodes when declaration isnt explicitly turned on but composite is true
2018-08-29 22:55:01 -07:00
csigs d604199602 LEGO: check in for master to temporary branch. 2018-08-30 04:10:39 +00:00
Andy d37caf1c0d Remove unnecessary getContainingClass calls (#26753) 2018-08-29 17:43:22 -07:00
Andy cea49dfb0d Completion for tuple index doesn't need to include quotes (#26750) 2018-08-29 16:38:42 -07:00
Andy f78dc2ad11 importFixes: Only provide a fix using the best module specifier for a given module (#26738) 2018-08-29 16:18:56 -07:00
Sheetal Nandi 262fa3ac31 Correctly mark visibile nodes when declaration isnt explicitly turned on but composite is true
Fixes #26669
2018-08-29 16:17:24 -07:00
Benjamin Lichtman f4765a6ea3 Fix error introduced by rebase 2018-08-29 15:56:22 -07:00
Benjamin Lichtman bb892d951d Use non-diagnostics-producing typechecker to get type 2018-08-29 15:54:19 -07:00