Commit Graph

9800 Commits

Author SHA1 Message Date
Andrew Branch
1d5749ef78 Fix local and exported type alias merging (#36237)
* Fix local and exported type alias merging

* Add baselines
2020-01-22 13:16:49 -08:00
Anders Hejlsberg
da61231039 Include super.XXX(...) assertion method calls in CFA (#36293)
* Support super.XXX in assertions

* Add tests
2020-01-22 11:21:11 -08:00
Nathan Shively-Sanders
c8e2f58ec5 Completions for asserts and declare (#36355)
* Add completions for `asserts`

* Add declare assertions.
2020-01-22 10:43:33 -08:00
Orta
5e59eece34 Adds support for showing default exports in the navtree (#35477)
* Adds support for showing default exports in the navtree - Fixes #34601

* Handle the feedback in #35477

* Navigation items using default export or export = will get noted if they are a const vs function
2020-01-22 08:13:04 -05:00
Alexander T
38eccbab2a feat(29624): better errors for non-exported types (#36187) 2020-01-21 13:03:22 -08:00
Alexander T
0dd4c9cebe feat(36231): Improve message for "Remove declaration for: ..." (#36283) 2020-01-18 13:28:19 -08:00
Ron Buckton
50adabe32d Improve diagnostics and add code fixes for top-level await (#36173) 2020-01-18 12:24:08 -08:00
Alexander T
afa11d3c7a fix(34621): show suggestions in class property initializer (#35999) 2020-01-17 14:27:12 -08:00
Alexander T
94e8db7e07 fix(35043): TS Server: references does not mark isDefinition o… (#36051) 2020-01-17 14:26:36 -08:00
Alexander T
ce4c4b6183 fix(36023): fix crash in document highlight service (#36233) 2020-01-17 14:24:46 -08:00
Sheon Han
96e8fbc657 Fix for issue #32528: Prevent meta property from appearing twice (#35844)
* fix meta property from appearing twice

* handle case where ImportMeta has props defined

* rename file

* use exclude instead of exact

* undo comment

* this file should have no change

* change file name back

* add more test cases

* remove comment and text validation

* fix formatting
2020-01-17 13:56:50 -08:00
Anders Hejlsberg
1a10e712e6 Improve variance measurement (#36261)
* No covariance default for recursive references in variance measurement

* Add tests

* Accept new baselines
2020-01-17 11:50:38 -08:00
Anders Hejlsberg
8517df6fa2 Fix erroneous optional chain narrowing (#36145)
* Not all optional chains are narrowable references

* Add regression test
2020-01-16 16:49:51 -08:00
Andrew Branch
797c5362a2 Codefix: Don’t return a fixId if there’s definitely nothing else that can be fixed (#35765)
* Start fixing fixId

* Fix tests

* Add comment

* Fix unit tests, remove fixAllDescription when unavailable

* Add codeFixAllAvailable to fourslash harness
2020-01-16 10:07:37 -08:00
Alexander T
eeff036519 fix(35954): Change spelling for private field incorrectly fixes to a string property (#36079)
* fix(35954): code fix incorrectly fixes private properties spelling issues

* remove duplicate function calls
2020-01-16 09:01:21 -08:00
Alexander T
dbd55b3928 fix(35944): show spell checking quick fix for non-existent private named property access (#36195) 2020-01-15 16:56:40 -08:00
Andrew Branch
81a942e7b9 Fix completions triggered on existing private identifier property access (#36191) 2020-01-15 13:13:11 -08:00
Orta
1dafd09a06 Revert "Add related diagnostic to "used before defined" if type is a function that returns a union with undefined (#33171)" (#35751)
This reverts commit be960fa356.
2020-01-15 12:50:52 -05:00
Klaus Meinhardt
6e3ab1529f remove private named properties from rest and spread types (#35950)
* remove private named properties from rest and spread types

Fixes: #35943

* code review
2020-01-14 14:47:39 -08:00
Alexander T
daf786ecd0 throw an error when no default export present (#35815) 2020-01-14 11:38:48 -08:00
Wesley Wigham
69ab1d5ecd Handle Identifier declarations in getDeclarationSpaces (#36136) 2020-01-13 10:29:37 -08:00
Sheetal Nandi
0c3019e3b3 Handle invalid package.json typings fields when generating specifiers (#36137)
Fixes #35437
2020-01-10 14:51:23 -08:00
Nathan Shively-Sanders
13cddae3f7 Allow references to uninitialized ambient properties (#36112)
Previously these were incorrectly treated just like normal properties:

```ts
class Parent {
    a: any;
    constructor(arg: any) {
        this.a = arg;
    }
}
class Child extends Parent {
    declare a: number;
    constructor(arg: number) {
        super(arg);
        console.log(this.a);  // Property 'a' is used before being assigned. (2565)
    }
}
```

Fixes #35327
2020-01-10 10:50:05 -08:00
Anders Hejlsberg
357f715382 Check combined intersection properties against target index signatures (#35143)
* Check combined intersection properties against target index signatures

* Add tests

* Accept new baselines

* Less aggressive check for index signatures

* Track intersection membership state for both source and target

* Minor fixes
2020-01-10 10:46:10 -08:00
Nathan Shively-Sanders
517d6eea28 Get jsdoc host from chained assignment (#36111)
* Get jsdoc host from chained assignment

getSourceOfAssignment previously only checked one level of binary
expression instead of following binary expressions all the way to the
right. This meant that binding of `@constructor` would fail in the
following example:

```js
/** @constructor */
a = b = function () { }
```

* cleanup lint

* use existing utility
2020-01-10 10:09:39 -08:00
Jean Pierre
79dcd3dba1 Correctly resolve tags for function overloads (#30253)
* Correctly resolve tags for function overloads. Fixes #30181

* Better fix for #30181. Added more unit tests

* Fix commentsOverloads tests

* Fallback to first signature when doc and tags are empty
2020-01-10 08:54:26 -08:00
M.Yoshimura
5fc917be2e Fixes broken emit with useDefineForClassFields + private field (#35898)
* Fixes broken emit with useDefineForClassFields + private field

* use simpler function for condition
2020-01-09 10:21:49 -08:00
Nathan Shively-Sanders
66b5c47854 Fix crash in codefixes re: braces of class body (#36087)
* Fix crash in codefixes re: braces of class body

Previously, the code that finds braces of a class body assumed they were
always there. This is not always the case, so this code checks for
that.

* fix semicolon lint
2020-01-09 08:46:00 -08:00
Anders Hejlsberg
0aab63b7ff Fix narrowing of optional chains (#36089)
* Check for definitely not undefined instead of maybe not undefined

* Fix comment

* Add tests
2020-01-08 15:37:27 -08:00
Titian Cernicova-Dragomir
3e4578c9f4 Fixed unreported strict property initialization violations. (#35891) 2020-01-08 15:15:20 -08:00
Eli Barzilay
ab1458ac55 Tweak the test and add more duplicate name assignment tests
(Both valid and invalid.)
2020-01-08 14:21:28 -05:00
Klaus Meinhardt
38b53790af Allow destructuring the same property multiple times
Fixes: #35939
2020-01-08 14:21:28 -05:00
Joey Watts
f84b2d20a9 Parse error on private identifier optional chain (#35987)
Previously, this error was reported in the checker, so JS files with
checkJs: false were not erroring on this invalid syntax.
2020-01-07 16:00:15 -08:00
Eli Barzilay
9fbcdb1edb Resurrect SuppressAnyReturnType, but make it used only at the toplevel 2020-01-07 17:12:43 -05:00
Eli Barzilay
724f426468 Remove SuppressAnyReturnType
Following a discussion with Ryan, it seems best to leave any `any`s in
the generated code.
2020-01-07 17:12:43 -05:00
Eli Barzilay
0c467d095f Fix signatureToSignatureDeclarationHelper
Even if `SuppressAnyReturnType` is on, don't supress it if it's a function.

Fixes #35508.
2020-01-07 17:12:43 -05:00
Alexander T
8ed92dcecd fix(31909): show suggestions for second type argument of generic (#36024) 2020-01-07 11:03:22 +00:00
Wesley Wigham
88677de380 Do not omit the anyFunctionType from intersections (#35658)
* Do not omit the anyFunctionType from intersections

* Move check into isEmptyResolvedType
2020-01-07 00:39:28 -08:00
Daniel Rosenwasser
f807b57356 Add s to importsNotUsedAsValue (#36037)
* Pluralize end of 'importsNotUsedAsValue'.

* Updated baselines.
2020-01-06 13:23:47 -08:00
Anders Hejlsberg
f8bfc6f5d6 Contextually typed binding element initializers (#35855)
* Binding element initializers contextually typed by parent initializers

* Accept new baselines

* Literal type widening should be last step in inference

* Accept new baselines

* Add tests
2020-01-06 12:53:23 -08:00
Anders Hejlsberg
df3b5bbdab Fix ThisParameterType<T> type (#36013)
* Simplify ThisParameterType<T> type

* Add tests
2020-01-06 08:55:34 -10:00
Eli Barzilay
d6c05a1358 Fix getEffectiveTypeAnnotationNode
Prevent it from using the (return) type of a function.  Could also check
the condition before calling the function, but there are two places that
need the check, and OTOH, all calls check the result so returning
`undefined` should work.

(This problem was introduced in PR#32553.)

Fixes #33741.
2020-01-03 22:47:17 -05:00
Andrew Branch
3b396e6124 Type-only imports and exports (#35200)
* Add type-only support for export declarations

* Use a synthetic type alias instead of binding type-only exports as a type alias

* Works for re-exports!

* isolatedModules works fine

* Diagnostic for type-only exporting a value

* Start isolated modules codefix

* Update for LKG control flow changes

* Type-only import clause parsing

* Type-only default import checking

* Type-only named imports

* Fix isolated modules error

* Filter namespaces down to type-only

* Fix class references

* Test nested namespaces

* Test circular type-only imports/exports

* Fix getTypeAtLocation for type-only import/export specifiers

* Fix type-only generic imports

* Update public APIs

* Remove unused WIP comment

* Type-only namespace imports

* Fix factory update calls

* Add grammar errors for JS usage and mixing default and named bindings

* Update updateExportDeclaration API baseline

* Fix grammar checking import clauses

* Enums, sort of

* Dedicated error for type-only enum

* Skip past type-only alias symbols in quick info

* Update error code in baseline

* WIP: convertToTypeOnlyExport

* isolatedModules codefix (single export declaration)

* isolatedModules code fix (all)

* Stop eliding non-type-only imports by default, add compiler flag

* Update to match updated diagnostic messages

* Update more baselines

* Update more tests

* Auto-import as type-only

* Add codefix for splitting type-only import with default and named bindings

* Add more services tests

* Add targeted error message for "export type T;" when T exists

* Add targeted error for "import type T = require(...)"

* Flip emit flag

* Add test for preserveUnusedImports option

* Fix flag flip on import =

* Make compiler option string-valued

* Fix merge conflicts

* Add --importsNotUsedAsValue=error

* Phrasing of messages.

Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com>
2020-01-03 14:39:32 -08:00
Alexander T
4585f448a9 fix(35179): formatter incorrectly remove spaces (#35979) 2020-01-03 10:09:56 -08:00
Anders Hejlsberg
a8944e6844 Fix type parameter leak (#35949)
* Fix cloneSignature to include unionSignatures property

* Add regression test
2020-01-03 07:54:38 -10:00
Daniel Rosenwasser
024b8c1e5f Merge pull request #30565 from D0nGiovanni/m-template-literal-2
add refactoring: string concatenation to template literals
2020-01-02 17:08:29 -08:00
Titian Cernicova-Dragomir
ded072e8af Fixed find all references for private identifiers. (#35887) 2020-01-02 17:06:25 -08:00
Daniel Rosenwasser
ff4fa1feb9 Cleaned up refactoring names, descriptions. 2020-01-02 16:32:06 -08:00
Daniel Rosenwasser
ad0f0064ce Remove refactoring from template expression to string concatenation. 2020-01-02 16:12:44 -08:00
Titian Cernicova-Dragomir
82b0547281 Fixed outlining spans for chained method calls. (#35860) 2020-01-02 15:44:22 -08:00