7867 Commits

Author SHA1 Message Date
Ron Buckton
fbeb58a147
Merge pull request #23893 from Microsoft/libReference
Adds 'lib' reference directives
2018-06-04 16:14:52 -07:00
Ron Buckton
666841264c Merge branch 'master' into libReference 2018-06-04 14:38:56 -07:00
Wesley Wigham
7eaa78846e
Visit the children of an import type/require call/dynamic import when looking for those (#24663) 2018-06-04 14:31:56 -07:00
Wesley Wigham
cbbf2e4e6f
Resolve aliases before using getTypereferenceType (#24594) 2018-06-04 14:19:41 -07:00
Andy
a641e6f85f
goToDefinition: Put variable definition before signature definition (#24649)
* goToDefinition: Put variable definition before signature definition

* Fix lint
2018-06-04 14:13:27 -07:00
Sheetal Nandi
c3dcc83d4f
Merge pull request #24664 from Microsoft/builderAPIBreak
Fix the issue with createSemanticDiagnosticsBuilderProgram, createEmitAndSemanticDiagnosticsBuilderProgram and createAbstractBuilder not assignable to CreateProgram<T>
2018-06-04 13:35:40 -07:00
Nathan Shively-Sanders
7db4b1cbc7
Fix property assignment on aliases (#24659)
Aliases don't have valueDeclarations, which caused a crash when passed
to isJavascriptContainer before.
2018-06-04 13:34:23 -07:00
Sheetal Nandi
8427e95386 Tests to acknowledge the public watch api 2018-06-04 12:59:01 -07:00
Nathan Shively-Sanders
34e68efdae
Template tag allows specification of constraints (#24600)
* Parse (and mostly support) template tag constraints

A bunch of tests hit the asserts I added though.

* Messy version is finished. Need to add a few tests

* Refactor to be smaller

* Small refactor + Add one test

* Another test

* Minor cleanup

* Fix error reporting on type parameters on ctors

* Simplify syntax of `@template` tag

This is a breaking change, but in my sample, nobody except webpack used the
erroneous syntax. I need to improve the error message, so
jsdocTemplateTag3 currently fails to remind me of that.

* Better error message for template tag

* Fix fourslash baselines

* Another fourslash update

* Address PR comments

* Simplify getEffectiveTypeParameterDeclarations

Make checkGrammarConstructorTypeParameters do a little more work
2018-06-04 11:42:46 -07:00
Andy
2ce7e5f0cd
Add 'unknown' to type keywords (#24606) 2018-06-04 11:31:48 -07:00
Andy
d8cea359f7
moveToNewFile: Update namespace imports (#24612) 2018-06-04 11:30:14 -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
Andy
046c5ea6c1
moveToNewFile: Ignore reference to global (#24651) 2018-06-04 10:35:23 -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
Anders Hejlsberg
54f9c17045 Add regression test 2018-06-03 11:59:24 -07:00
Anders Hejlsberg
6f2001fb23 Add tests 2018-06-02 17:43:37 -07: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
Dan Freeman
4a36ee0c62 Support import completion for merged declaration exports (#24539) 2018-06-01 09:46:56 -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
Zen
95df51b7cf remove redundant assertions in fourslash tests (#24561) 2018-06-01 08:16:03 -07:00
Andy
9d42ab983d
implementations: Use declaration name for the span (#24537)
* implementations: Use declaration name for the span

* Always get name in nodeEntry
2018-05-31 13:32:02 -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
Mohamed Hegazy
1f66f21e82
Merge pull request #24431 from Zzzen/master
Document highlights on yield keywords highlight other occurrences in …
2018-05-31 12:52:56 -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
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
Alexander T
7ef7f907b9 Do not emit 'use strict' prologue in .json files with --alwaysStrict 2018-05-31 20:28:53 +03:00
Ron Buckton
b4e113b94e Merge branch 'master' into libReference 2018-05-31 10:02:08 -07:00
Zzzen
2a8ff1c8d9 Merge remote-tracking branch 'ms/master' 2018-05-31 20:49:43 +08:00
Zzzen
8c95bf3cd7 Merge remote-tracking branch 'ms/master' 2018-05-31 20:41:59 +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
Andy
2cb46407b1
moveToNewFile: Remove newlines after last moved statement (#24503) 2018-05-30 15:16:03 -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
Vyacheslav Pukhanov
75f20f9b65 fixUnusedIdentifier: fix "Remove variable statement" codefix (#24497)
* fixUnusedIdentifier: fix "Remove variable statement" codefix

* Add test for a single "Remove variable statement" codefix in a file
2018-05-30 14:51:08 -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
77371679be
Support getting references even if quickInfo failed (#24476)
* Support getting references even if quickInfo failed

* Add test
2018-05-30 14:11:36 -07:00
Mohamed Hegazy
c47df3a8fd
Merge pull request #24438 from vpukhanov/issue-22674
addMethodDeclaration: add after quickfix location if possible
2018-05-30 10:30:01 -07:00
Anders Hejlsberg
a8a31ed508
Merge pull request #24439 from Microsoft/unknownType
New 'unknown' top type
2018-05-30 10:22:02 -07:00
Nathan Shively-Sanders
22cdff59e4
Better fix for bogus duplicate identifier in module exports (#24491) 2018-05-30 09:59:14 -07:00
Mohamed Hegazy
04dc76ec9c
Merge pull request #24442 from Kingwl/fix-implement-interface-with-extends-class
add lookup for extends class when implement interface
2018-05-30 09:20:50 -07:00
Andy
5e2c7ffce6
isValidMethodAccess: use getTypeOfPropertyOfType instead of getTypeOfFuncClassEnumModule (#24488) 2018-05-30 09:12:24 -07:00
Andy
011a4df4dd
Don't allow to rename string literal (#24477) 2018-05-30 07:50:48 -07:00
Anders Hejlsberg
e22a9d6fc1 Merge branch 'master' into unknownType 2018-05-30 07:45:10 -07:00
王文璐
2cb211305b Merge branch 'master' into fix-implement-interface-with-extends-class 2018-05-30 09:05:56 +08:00