Commit Graph
11679 Commits
Author SHA1 Message Date
Sheetal Nandi e88305173d Fix the issue with createSemanticDiagnosticsBuilderProgram, createEmitAndSemanticDiagnosticsBuilderProgram and createAbstractBuilder not assignable to CreateProgram<T>
Fixes #24625
2018-06-04 13:03:57 -07:00
Anders Hejlsberg 75d0852d3e Merge pull request #24637 from Microsoft/fixIndexedAccessSimplification
Fix indexed access simplification
2018-06-04 10:58:23 -07:00
Sheetal Nandi d64608dc97 Merge pull request #24615 from Microsoft/jsonSourceMaps
Disable source maps and declaration emit for the json module
2018-06-04 10:48:43 -07:00
Wesley Wigham 779fa98475 Fix merge lexical environment to *always* respect prologue statements (#24602) 2018-06-04 10:34:38 -07:00
Andy 886377f8d3 Add autoCloseTag language service (#24543)
* Add autoCloseTag language service

* Change name to getJsxClosingTagAtPosition and return an object
2018-06-04 10:08:15 -07:00
Kitson Kelly a9cb33db04 Treat host as possibly undefined for base64encode/base64decode
Fixes: #24638
2018-06-04 09:47:54 +10:00
Anders Hejlsberg 55d4d7b5c6 Simplify nested indexed access types 2018-06-03 08:57:15 -07:00
Anders Hejlsberg 667de4bbb9 Merge pull request #24627 from Microsoft/typeofFunction
Fix typeof x === "function" type guards
2018-06-02 18:46:52 -07:00
Anders Hejlsberg 0ff597c3a8 Improve typeof x === "function" narrowing for non-unions 2018-06-02 17:42:07 -07:00
David Sherret 7e0ed5ec4d Fix createProgram js docs. 2018-06-01 23:29:05 -04:00
Sheetal Nandi d246c3c2bd Disable source maps and declaration emit for the json module
Fixes #24546
2018-06-01 18:31:58 -07:00
Andy 9be846e1f2 Fix bug when name resolution fails in a @typedef: Don't set lastLocation (#24585)
* Fix bug when name resolution fails in a @typedef: Don't set `lastLocation`

* Add noEmit to test
2018-06-01 16:49:54 -07:00
Wesley Wigham 1b6d9229f2 Visit super arguments even when no signature exists (#24591) 2018-06-01 14:14:56 -07:00
Wesley Wigham f8503f2632 Include export specifiers in the list of syntactic defaults (#24549) 2018-06-01 10:40:30 -07:00
Andy 7e249ce721 Reduce size of span for unused declaration (revert #22388) (#24566) 2018-06-01 09:50:32 -07:00
Andy d671c7ae96 getEditsForFileRename: Support directory rename (#24305)
* getEditsForFileRename: Support directory rename

* Code review

* Handle imports inside the new file/directory

* Document path updaters

* Shorten relative paths where possible

* Reduce duplicate code

* Rewrite, use moduleSpecifiers.ts to get module specifiers from scratch instead of updating relative paths

* Update additional tsconfig.json fields

* Add test with '.js' extension

* Handle case-insensitive paths

* Better tsconfig handling

* Handle properties inside compilerOptions

* Use getOptionFromName
2018-06-01 08:23:37 -07:00
Sheetal Nandi 997991fdcb Merge pull request #24529 from Microsoft/suggestionDiagnosticsToken
Suggestion diagnostics to wire cancellationToken
2018-05-31 13:22:49 -07:00
Sheetal Nandi fd242250c5 Merge pull request #24536 from Microsoft/trailingCommaInJson
Do not emit trailing comma in json module
2018-05-31 13:16:48 -07:00
Sheetal Nandi eab21e5b77 Merge branch 'master' into suggestionDiagnosticsToken 2018-05-31 12:46:33 -07:00
Sheetal Nandi 1696da14f2 Do not emit trailing comma in json module
Fixes #24530
2018-05-31 12:40:08 -07:00
Mohamed Hegazy e9dda76874 Merge pull request #24515 from Kingwl/esnext-symbol
add esnext symbol proposal
2018-05-31 12:23:01 -07:00
Mohamed Hegazy 86fe529f72 Merge pull request #24524 from a-tarasyuk/bug/24514-use-strict-prologue-emitted-in-json-files
Do not emit 'use strict' prologue in .json files with --alwaysStrict
2018-05-31 12:16:04 -07:00
Nathan Shively-Sanders d187de2076 Better JS container binding (#24367)
* Static assignments to class expressions work

* Bind static properties of functions too

Also update SymbolLinks in getTypeOfFuncClassEnumModule so that the
type gets cached correctly.

* Remove initializer handling:obj literals+type lookup

Also include a couple of improved baselines

* Fix 1-nested js containers:binding+cross-file merge

* Consolidate check into one utility

The utility is horrible and needs to change, but at least it's in one
place.

Next step is to make the utility like getDeclarationOfAlias, except
getDeclarationOfJSAlias.

* Defaulted assignments now (mostly) work

* Default assignment definitely work, and IIFEs kind of do

* n-nested undeclared containers now seem to work

Merging even seems to work ok.

* Handle prototype+prototype property assignments

Perhaps in the wrong way. I have an idea how to simplify them.

* Remove prototype special-case

1. It's not completely removed; the checker code in
getJavascriptClassType needs to be fixed, among other places.
2. I didn't actually remove the code so that it will be easier to see
what used to be there on Monday.

Regardless, the code will be much simpler and seems to be mostly
improved with very little work so far.

* Allow more merges+accept baselines

* Update more baselines

* Fix js initializer check in bindPropertyAssignment

* Fix codefixes

* Rest of strictNullChecks cleanup + other cleanup

1. Remove a few TODOs
2. Remove extraneous SymbolFlag
3. Simplify isSameDefaultedName

* Binder cleanup

* Checker cleanup

* Almost done with utilities cleanup

* Utilities cleanup

* Require js initializer to be (1) JS (2) initializer

Change getDeclarationOfJSInitializer to require that the provided js
initializer be in a javascript file, and that it is the initializer of
the retrieved declaration.

* Use getSymbolOfNode instead of accessing symbol directly

* Ugh. Start over with just test cases

* Handle additional cases in getTypeOfVariableOrParameterOrProperty

These are cases in a really embarrassing check, in which we admit that
the symbol flags steered us wrong and switch to
getTypeOfFuncClassEnumModule instead (which never asserts).

* Add test case for #24111

* Address PR comments
2018-05-31 11:41:26 -07:00
Sheetal Nandi b0f039c9e2 Make suggestion diagnostics to wire cancellationToken
This especially needed if its a js file without the ts-check, the file wont be typechecked in getSemanticDiagnostics
Fixes part of #19458
2018-05-31 10:47:17 -07:00
Alexander T 7ef7f907b9 Do not emit 'use strict' prologue in .json files with --alwaysStrict 2018-05-31 20:28:53 +03:00
王文璐 7910bbdccb add esnext symbol proposal 2018-05-31 13:30:31 +08:00
Wesley Wigham 576a733378 For type emit, walk non-parent containers when those containers have aliases leading to the target (#24507) 2018-05-30 17:52:59 -07:00
Wesley Wigham 04379d548c Lookup type arguments correcly for taged templates when checking generic arity (#24496) 2018-05-30 15:03:04 -07:00
Nathan Shively-Sanders cdfa63aa40 Fix exported type resolution in commonjs (#24495)
* Fix resolution of exported types in commonjs

It is fine to resolve the types of exported classes in ES6:

```js
export class C {
}
var c = new C()
```

But not for commonjs exported classes:

```js
module.exports.C = class {
}
var c = new C() // should error
```

Fixes #24492

* All jsdoc type aliases are available locally in commonjs modules

* Check that location isSourceFile before commonJsModuleIndicator
2018-05-30 14:12:38 -07:00
Andy 43bf039a94 Add refactor to convert namespace to named imports and back (#24469)
* Add refactor to convert namespace to named imports and back

* Add tests and comments

* Code review

* Handle shorthand property assignment and re-export

* Don't use forEachFreeIdentifier

* Fix rename after "."
2018-05-30 14:11:53 -07:00
Andy 239dde8ff1 Fix cast: location may be a SourceFile (#24498) 2018-05-30 13:37:32 -07:00
Sheetal Nandi 2226cd6a99 Merge pull request #24471 from Microsoft/watchInSiblingOfRoot
Instead of creating filter for subDirectories to watch in the ancestor directory of root, watch those subDirectories for failed lookup locations
2018-05-30 11:12:23 -07:00
Anders Hejlsberg a8a31ed508 Merge pull request #24439 from Microsoft/unknownType
New 'unknown' top type
2018-05-30 10:22:02 -07:00
Andy 675e21203e Improve template literal tests (#24359)
* Improve template literal tests

* Inline isTemplateLiteralToken where possible
2018-05-30 10:21:00 -07:00
Nathan Shively-Sanders 22cdff59e4 Better fix for bogus duplicate identifier in module exports (#24491) 2018-05-30 09:59:14 -07:00
Ron Buckton fc3e88e26f Merge pull request #24481 from Microsoft/fix24173
Fix async generator return as well
2018-05-30 09:43:00 -07:00
Andy 5e2c7ffce6 isValidMethodAccess: use getTypeOfPropertyOfType instead of getTypeOfFuncClassEnumModule (#24488) 2018-05-30 09:12:24 -07:00
Anders Hejlsberg 86643902b2 Rename unknownType to errorType in merged code 2018-05-30 08:17:09 -07:00
Anders Hejlsberg e22a9d6fc1 Merge branch 'master' into unknownType 2018-05-30 07:45:10 -07:00
Anders Hejlsberg 6b1c84e84a Remove eager resolution of distributive conditional types 2018-05-29 17:55:31 -07:00
Ron Buckton 6f7715444f Fix async generator return as well 2018-05-29 17:54:59 -07:00
Ron Buckton c224a824f3 Do not await iterated value in for-await-of 2018-05-29 15:33:43 -07:00
Sheetal Nandi 939e3e4780 Instead of creating filter for subDirectories to watch in the ancestor directory of root, watch those subDirectories for failed lookup locations
Before this change, when failed lookup location didnt fall in root directory,
we tried to find the ancestor directory of the rootDirectory to watch.
We also created subDirectory map for the directories that are being watched so we dont go through invalidation if path is unwanted directory
With this change, we will watch those subdirectories instead of root. On windows node supports file system level recursive watching so the earlier approach was better because we reduced number of watches created
But on other os, since node doesnt support it, we create the watches for existing folders outselves, so earlier approach becomes expensive.
This should be better compromize to satisfy both types of OS.
Fixes #24434
2018-05-29 14:49:19 -07:00
Nathan Shively-Sanders 36c580378f Fix duplicate identifier error with module.exports (#24466)
A bug in checkSpecialAssignment added bogus duplicate identifier errors
when using module.exports assignment to export a class. This commit
fixes that.
2018-05-29 14:29:48 -07:00
Nathan Shively-Sanders 15bfaf1cf6 Skip IntrinsicAttributes elaboration in JSX errors (#24461)
* Skip IntrinsicAttributes elaboration in JSX errors

Do not issue an error message for a source type that comes from JSX
attributes and a target type that is an intersection containing
IntrinsicAttributes or IntrinsicClassAttributes. This will make error
messages simpler and less confusing.

Note:
1. There will always be elaboration under the skipped message, so this
won't elide errors completely.
2. Rarely (once in the tests) the intersection type will have more that
one non-Intrinsic* member. However, these additional members don't
provide useful information either, so it's fine to skip them.

* Add test of IntrinsicAttributes error

* Fix indentation in test
2018-05-29 14:00:26 -07:00
Ron Buckton 6657df47f0 Fix return and throw propagation for yield* 2018-05-29 12:56:46 -07:00
Anders Hejlsberg 074961f303 keyof unknown should be never 2018-05-29 12:54:00 -07:00
Anders Hejlsberg a83653ed99 Add new diagnostic 2018-05-27 15:43:44 -07:00
Anders Hejlsberg 353802c140 Check we have non-unknown where we require non-nullable 2018-05-27 15:43:31 -07:00
Anders Hejlsberg 79e7700c6b { [P in unknown]: XXX } should resolve to { [x: string]: XXX } 2018-05-27 10:25:13 -07:00