Jack Bates
27bbdf1fe9
Transform JSX spread children ( #45693 )
...
* Transform JSX spread children
* Target es2015 to skip helper and refine emit
Co-authored-by: Ron Buckton <ron.buckton@microsoft.com >
Co-authored-by: Ron Buckton <ron.buckton@microsoft.com >
Co-authored-by: Orta <git@orta.io >
2021-09-24 09:19:49 -07:00
Ashley Claymore
af689cc5d5
ES private field check ( #44648 )
...
* es private fields in in (#52 )
add support for the 'private-fields-in-in' TC39 proposal
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [fixup] include inToken when walking forEachChild(node, cb)
* [squash] re-accept lib definition baseline changes
* [squash] reduce if/else to ternary
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] drop 'originalName' and rename parameter instead
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] extend spelling suggestion to all privateIdentifiers
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] revert the added lexical spelling suggestions logic
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] update baseline
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] inline variable as per PR suggestion
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] test targets both esnext and es2020 as per PR comment
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* switch to using a binary expression
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] PrivateIdentifier now extends PrimaryExpression
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] accept public api baseline changes
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] classPrivateFieldInHelper now has documentation
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] type-check now follows existing in-expression path
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] parser now follows existing binaryExpression path
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] correct typo in comment
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] no longer use esNext flag
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] swap 'reciever, state' helper params
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] remove change to parenthesizerRules
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] apply suggested changes to checker
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] remove need for assertion in fixSpelling
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] improve comment hint in test
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] fix comment typos
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] add flow-test for Foo | FooSub | Bar
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] add checkExternalEmitHelpers call and new test case
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] simplify and correct parser
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] move most of the added checker logic to expression level
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] always error when privateId could not be resolved
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] reword comment
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] fix codeFixSpelling test
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] do less work
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* store symbol by priateId not binaryExpression
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* moved parsePrivateIdentifier into parsePrimaryExpression
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] checkInExpressionn bails out early on silentNeverType
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] more detailed error messages
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] resolves conflict in diagnosticMessages.json
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] update baseline for importHelpersES6
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] remove redundent if and comment from parser
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] split up grammar/check/symbolLookup
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
* [squash] reword message for existing left side of in-expression error
Signed-off-by: Ashley Claymore <acutmore@users.noreply.github.com >
2021-09-24 09:05:27 -07:00
Oleksandr T
1b6c8fd072
fix(45607): add snippet for type only import statements ( #45873 )
2021-09-23 16:13:17 -07:00
Anders Hejlsberg
a4f9bf0fce
Create type aliases for unresolved type symbols ( #45976 )
...
* Create type aliases for unresolved type symbols
* Accept new baselines
* Update fourslash tests
* Unresolved import aliases create tagged unresolved symbols
* Add comments
* Accept new baselines
* Add fourslash tests
2021-09-23 13:21:27 -07:00
Andrew Branch
039672332f
Revert "Stop looking at binding patterns for type argument inference" ( #46013 )
...
* Revert "Stop looking at binding patterns for type argument inference (#45719 )"
This reverts commit be618b1446 .
* Update error baseline for moved lib file declaration
2021-09-23 09:26:51 -07:00
Ron Buckton
4c0a51e14b
Avoid Promise<Awaited<T>> in return type inference ( #45925 )
2021-09-22 16:29:07 -07:00
Armando Aguirre
24e3b6bf59
Added Jsx Snippet Completion feature ( #45903 )
...
* Added Jsx completion feature and tests
* Renamed jsxSnippetCompletion to jsxAttributeCompletionStyle
* Renamed tests files
* Changed boolean filter
* Escaped snippet
2021-09-22 16:09:00 -07:00
Nathan Shively-Sanders
f0fe1b88ca
Make isDefinition aware of declaring symbol ( #45920 )
...
* Make isDefinition aware of target symbol
Initial code, haven't fixed any tests yet.
* Update baselines
This commit includes a regression for commonjs aliases:
```js
// @filename: a.js
function f() { }
module.exports.f = f
// @filename: b.js
const { f } = require('./a')
f/**/
```
Now says that `f` in b.js has 1 reference --
the alias `module.exports.f = f`. This is not correct (or not exactly
correct), but correctly fixing will involve re-creating the ad-hoc
commonjs alias resolution code from the checker. I don't think it's
worth it for an edge case like this.
* update more unit tests
* Fix symbol lookup for constructors
* More baselines + two fixes
1. Fix `default` support.
2. Add a secondary declaration location for commonjs assignment
declarations.
* Update rest of baselines
* Switch a few more tests over to baselines
2021-09-22 13:43:52 -07:00
Hossein
110b05987e
Fix GH-32798: Allow == null to narrow unknown to null | undefined ( #45853 )
...
* Fix GH-32798
* add assume true
* Address Gabby comments
* Address Gabby comments by adding Else branch
2021-09-22 10:54:59 -07:00
Nathan Shively-Sanders
15722e6b64
Remove referenceGroups/noReferences from fourslash ( #45988 )
...
* Remove referenceGroups/noReferences from fourslash
I left most singleReferenceGroups because there were so many, and my current
PR doesn't affect many of them.
* update fourslash/server too
* Explicitly sort keys
Needed for node 10 compatibility
* Revert "Explicitly sort keys"
This reverts commit 1d1c58a4e3 .
It shouldn't be needed now that we're not testing with node 10
2021-09-21 16:25:52 -07:00
Oleksandr T
9b3ba871fb
fix(45987): fix pasring invalid names ( #45994 )
2021-09-21 14:02:58 -07:00
Eli Barzilay
3a8591b544
Fix const assertions on enums
...
Fixes #45977
2021-09-21 12:42:28 -04:00
Oleksandr T
15a46bb72d
fix(45489): add test to cover comparison operator with intersection type ( #45936 )
2021-09-20 16:35:55 -07:00
Wenlu Wang
ec114b8931
Import assertion ( #40698 )
...
* Add parsing
* fix all api
* check gramma of import call
* Add more part of assertion
* Add some case
* Add baseline
* use module insted of target
* strip assertion in d.ts
* Update new baseline
* accept baseline
* Revert error number changes
* Update diagnostic message
* Accept baseline
* rename path
* Fix cr issues
* Accept baseline
* Accept baseline
* Error if assertion and typeonly import
* Accept baseline
* Make lint happy
* Add some comment
* Fix cr issues
* Fix more issue
* Incorporate PR feedback, fix module resolution for import()
* Add contextual type and completions for ImportCall options argument
Co-authored-by: Ron Buckton <ron.buckton@microsoft.com >
2021-09-20 14:15:22 -07:00
Hiroshi Ogawa
5ef043987a
fix(45802): keep children of mismatched jsx element ( #45839 )
...
* fix(45802): keep children of mismatched jsx element
* Apply suggestions from code review
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com >
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com >
2021-09-20 07:19:55 -07:00
Armando Aguirre
8346143450
Fixed trimming comments on the remaining range ( #45807 )
...
* Fixed trimming comments on the remaining range
* Added test
2021-09-17 14:00:04 -07:00
Oleksandr T
534fc14c66
fix(45850): Preserve const enums should keep import refs for exported const enums exported via named exports ( #45858 )
2021-09-16 10:15:41 -07:00
Orta Therox
b2f9432c40
Support resolving @typescript/[lib] in node modules ( #45771 )
...
* Support resolving @typescript/x for libs
* Baselines
* Tightens up the PR
* Fix the build
* Add cache
* Better naming
* Fixes the lookup path
2021-09-15 21:25:08 +01:00
Oleksandr T
40fa0c9f11
fix(44880): allow narrowing aliased conditions for catch variables ( #45797 )
2021-09-14 10:05:36 -07:00
Hiroshi Ogawa
4f8aa5239e
feat(45679): support 'did you mean' diagnostics for string literal union ( #45723 )
...
* feat(45679): support 'did you mean' diagnostics for string literal union
* Format suggested type with `typeToString`
* Address feedback
2021-09-14 08:53:36 -07:00
Anders Hejlsberg
5b84512ccc
Fix infinite recursion in control flow analyzer inlining logic ( #45845 )
...
* Move inlineLevel counter to main type checker scope
* Add regression test
2021-09-13 11:02:55 -07:00
Orta Therox
13bdc03ab5
Intl fix for nightly ( #45820 )
...
* Fix #45804
* Update src/lib/es2020.intl.d.ts
Co-authored-by: Andrew Branch <andrewbranch@users.noreply.github.com >
* More fixes
* Adds a test
Co-authored-by: Andrew Branch <andrewbranch@users.noreply.github.com >
2021-09-10 19:46:46 +01:00
Ron Buckton
ea521d45e9
Adds 'Awaited' type alias and updates to Promise.all/race/allSettled/any ( #45350 )
...
* Adds 'Awaited' type alias and updates to Promise.all/race/allSettled/any
* Use Awaited<T> with 'await'
* Clean up overloads
* Further restrict 'Awaited<T>' auto-wrapping for 'await'
2021-09-09 18:23:17 -07:00
Anders Hejlsberg
5186ee3d1b
Track non-null unknown types in control flow analysis ( #45575 )
...
* Track non-null unknown types in CFA
* Add tests
2021-09-09 09:20:44 -07:00
Ron Buckton
cf787e9bcf
Fix name resolution in typedef and allow defaults for template tags ( #45483 )
...
* Fix name resolution in typedef and allow defaults for template tags
* Inline parseBracketNameInTemplateTag
* Update baselines
* Add js declaration emit tests
2021-09-08 17:05:07 -07:00
Andrew Branch
8610ff5ebe
Add --preserveValueImports ( #44619 )
...
* Add compiler option
* Require es2015+
* Do not elide any imports or exports in preserve-exact
* Add errors for writing imports/exports that reference elided names
* Improve diagnostics wording
* Update API baselines
* Redo as noEraslingImportedNames
* Update option category
* Update baselines
* Lint
* Fix up transformer comments
* Fix errors from merge
* Update other error code baseline
* Rename to "preserveValueImports"
* Clean up, reword diagnostics
* Update API baselines
* Update other baseline affected by error message reword
* Update tsconfig baselines
* Add debug assertion instead of !
2021-09-08 16:30:22 -07:00
Anders Hejlsberg
b9eeb74f37
Tail recursive evaluation of conditional types ( #45711 )
...
* Implement tail-recursion for conditional types and lower general instantiation depth limit to 100
* Add tests
* Skip caching for tail recursive temporary conditional types
2021-09-08 15:42:09 -07:00
Gabriela Araujo Britto
4f5bbd00e6
Allow type comparison when target is generic mapped type with key remapping ( #45700 )
...
* Add case for type related to for generic mapped type with as clause target
* Clean up code and add baselines
* cleanup
2021-09-08 10:58:52 -07:00
Hiroshi Ogawa
617251f2e0
feat(45010): handle unclosed fragment in getJsxClosingTagAtPosition ( #45532 )
...
* feat(45010): handle unclosed fragment in `getJsxClosingTagAtPosition`
* Update tests
* Fix types of `JsxText.parent` and `JsxExpression.parent`
2021-09-08 09:22:38 -07:00
Orta Therox
07fd7bce64
Intl 2021 Updates ( #45647 )
...
* Import of Intl.Locale from #39664
* Handle updating es2020.intl and add es2021 for new DateTimeFormatOptions options - re: #39664
* Extends DateTimeFormatOptions for new Intl APIs - re: #45420
* Handle migrating Intl.NumberFormat.formatToParts to es2018 (keeping esnext.intl around)
* Adds Intl.DisplayNames to es2020 - re: #44022
* Remove attributes added in es2021 from es2020 - re: #42944
* Add a reference to es2021 in the command line parser
* Adds some docs about the lib files
* Baselines
* Allow undefined in Intl inputs to allow for ergonomic usage of exactOptionalPropertyTypes - see #45652
* Adds some tests covering the APIs
* Apply suggestions from code review
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com >
* Handle PR feedback
* More review improvements
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com >
2021-09-08 10:43:01 +01:00
Andrew Branch
be618b1446
Stop looking at binding patterns for type argument inference ( #45719 )
...
* Ignore empty binding patterns for contextual typing
* Stop looking at binding patterns for type argument inference entirely
2021-09-07 17:14:06 -07:00
Anders Hejlsberg
7032f6bcee
Include index signatures for tagged primitives in keyof ( #45773 )
...
* Properly include tagged primitive types in keyof
* Add regression test
2021-09-07 10:46:13 -07:00
Chris Manghane
a53ab0935d
Don't suppress comments when adding or removing braces to/from arrow function. ( #45597 )
...
Fixes microsoft/typescript#44228 , microsoft/typescript#44229 .
2021-09-02 18:05:16 -07:00
Oleksandr T
ba3a068614
fix(45687): allow selection to next token ( #45695 )
2021-09-02 11:57:37 -07:00
Andrew Branch
5daa6f45a3
Revert "fix(45501): don't remove spaces between empty object literals with enabled insertSpaceAfterOpeningAndBeforeClosingEmptyBraces ( #45514 )" ( #45682 )
...
This reverts commit 076f22b2c9 .
2021-09-01 17:47:27 -07:00
Kenta Moriuchi
d699bcdaae
Update lib types to mark Annex B as deprecated ( #43710 )
...
* Mark properties defined in Annex B as deprecated
* Tweak
* Update baselines
* Update fourslash tests
* Add completionsStringMethods.ts test
* Fix sortText value in fourslash test for deprecated tags
* Update package-lock.json
* Update package-lock.json
* Mark Non-standard RegExp Constructor properties as deprecated
* Update baselines
Co-authored-by: TypeScript Bot <typescriptbot@microsoft.com >
2021-08-30 10:38:07 -07:00
Ron Buckton
107c556fe4
Fix 'as const'-like behavior in JSDoc type cast ( #45464 )
2021-08-27 18:22:02 -07:00
Gabriela Araujo Britto
9f025b90a4
Don't include literals from enum members in completions ( #45588 )
...
* don't include literals from enum members in completions
* add enum symbol to completions test
* use symbol flags for detecting enum member
* use type flags to check for enum member
* fix test
2021-08-26 16:33:06 -07:00
Stef Busking
2a2962a916
Properties on intersections should be readonly only if all declarations are ( #45263 )
...
Fixes #45122
2021-08-25 16:55:14 -07:00
Andrew Branch
30103de1dd
Let AutoImportProviderProject resolve JS when allowJs and maxNodeModulesJsDepth allows ( #45524 )
...
* Let AutoImportProviderProject resolve JS when allowJs and maxNodeModulesJsDepth allows
* Simplify function
2021-08-25 15:06:14 -07:00
Armando Aguirre
ead9dfbdbd
Fixed JS completions type spread ( #45484 )
...
* Fix and updated tests
* Added test
* Revert "Fix and updated tests"
This reverts commit 33829fa4a4 .
* Filter out empty access expression
* PR feedback
2021-08-24 14:54:19 -07:00
Oleksandr T
076f22b2c9
fix(45501): don't remove spaces between empty object literals with enabled insertSpaceAfterOpeningAndBeforeClosingEmptyBraces ( #45514 )
2021-08-24 11:28:58 -07:00
Daniel Rosenwasser
59b8bef3e7
Only provide hints for simple literals when 'literals' is specified. ( #45557 )
...
* Only provide hints for simple literals when 'literals' is specified.
* Update fourslash tests.
2021-08-23 16:38:26 -07:00
David Rogers
d18e82b380
fix for 45006 ( #45020 )
...
* fix for 45006
* treat setters like getters in preceding commit; move test accordingly
* fix test baselines
* changes per code review
in `getContainerFlags`, move cases for get/set accessors
to fallthrough into the block that currently handles MethodDeclaration;
so get/set accessors and method declarations all get the same container flags,
such that during `bindContainer`, `startFlow.node` is assigned to
getters/accessors
(this changes a public api in tsserverlibrary.d.ts and typescript.d.ts
by adding `GetAccessorDeclaration` and `SetAccessorDeclaration` to the type
of `FlowStart.node`)
consolidate predicates checking whether a node is either a get or set
accessor, into `isObjectLiteralOrClassExpressionMethodOrAccessor`
(formerly `isObjectLiteralOrClassExpressionMethod`)
annotate updated test with `@target: es2020`
* fix `isObjectLiteralOrClassExpressionMethodOrAccessor`
require that Getter/Setters are parented by an ObjectLiteralExpression or ClassExpression
2021-08-20 17:05:19 -07:00
Oleksandr T
65ed4124ee
feat(44888): omit completions in an object expression with an instantiated class type ( #45044 )
2021-08-20 13:51:37 -07:00
Oleksandr T
69b5b2b2f3
feat(16755): show QF to declare missing properties in a call expression with an object literal argument ( #44781 )
2021-08-20 13:49:46 -07:00
Gabriela Araujo Britto
84b057828e
Fix incorrect suggestion for package that bundles types ( #45507 )
...
* Fix incorrect suggestion for package that bundles types
* determine if a package ships types from its files
* update new error message
2021-08-20 11:12:34 -07:00
Oleksandr T
e00722f262
feat(44720): allow renaming string literal in switch/case ( #45084 )
2021-08-19 17:09:35 -07:00
Zzzen
693c2d08c1
support contextual return type of iife ( #45007 )
2021-08-19 16:37:50 -07:00
Gabriela Araujo Britto
945179fb64
Reuse checker's property accessibility check for completions ( #45388 )
...
* add test for completions crash
* WIP: experiment
* remove comments
* add call to getParseTreeNode
* Revert "add call to getParseTreeNode"
This reverts commit 8dd1cf67cf .
* Fix comments
* minor fixes
* fix formatting
* rename type to containingType
2021-08-19 13:02:20 -07:00