Anders Hejlsberg
3d3825e783
Fix multiple issues with indexed access types applied to mapped types ( #47109 )
...
* Fix multiple issues with indexed access types applied to mapped types
* Add tests
2021-12-14 11:51:03 -08:00
Armando Aguirre
67872a50d0
Fix enums and namespace merge ( #47059 )
...
* Fix enums and namespace merge
* Remove unused comment
2021-12-13 14:03:19 -08:00
Oleksandr T
df87a8c12d
fix(44693): emit declaration of JSDoc overridden properties with different types ( #46797 )
2021-12-10 11:06:59 -08:00
Jake Bailey
0ed9247e17
Explicitly Omit unspreadable properties from rest type in the generic case ( #47078 )
2021-12-09 11:45:52 -08:00
Ron Buckton
67f84ef771
Fix Awaited<T> for onfulfilled callbacks with more than one argument ( #46951 )
2021-12-07 15:21:11 -08:00
Ryan Bargholz
7a12909ae3
fix(45713) Improve error report summaries ( #45742 )
...
* Improve error report summaries (#45713 )
* fixup! Improve error report summaries (#45713 )
* fixup! fixup! Improve error report summaries (#45713 )
* Adds support for handling localization renaming the 'files' header due to localization
* fixup! Adds support for handling localization renaming the 'files' header due to localization
- Fixed baseline error
- Fixed linter error
Co-authored-by: Orta <git@orta.io >
Co-authored-by: Orta Therox <ortam@microsoft.com >
2021-12-07 10:50:44 +00:00
Zzzen
7a1687de26
fix(42678): detect access to uninitialized variable in IIFE ( #42776 )
...
* fix(42678): detect access to uninitialized variable in IIFE
* improve performance
* Add missing space to match coding guidelines
* simplify the implementation
Co-authored-by: Jake Bailey <5341706+jakebailey@users.noreply.github.com >
2021-12-06 10:42:20 -08:00
Yuki Osaki
1f275d705d
"No repeated property names" error in object literals is duplicated in strict mode ( #46929 )
...
* "No repeated property names" error in object literals is duplicated in strict mode
* fix indent
2021-12-06 10:22:28 -08:00
Wesley Wigham
97a7901f26
Use features for selected module resolution rather than all features for type reference directives, since they can add restrictions to resolutions ( #47007 )
2021-12-04 04:24:28 -08:00
Oleksandr T
c5d9200ec6
feat(46986): offer QF for using await outside of async context ( #46994 )
2021-12-03 12:36:19 -08:00
Oleksandr T
719ab0b477
fix(43359): emit default exports with named exports that have the same names with types ( #44718 )
2021-11-12 11:25:52 -08:00
Kagami Sascha Rosylight
ae582a22ee
Add target: "es2022" ( #46291 )
...
* Add `target: "es2022"`
* Add Object.hasOwn
* formatToParts is es2018
* ref update
* optional parameter
* Revert "optional parameter"
This reverts commit e67d6e5f60 .
* undefined
* error cause
* Lint fix
Co-authored-by: Orta <git@orta.io >
2021-11-04 10:55:11 -07:00
Oleksandr T
ff75b8a180
fix(46615): remove useless assertion. change error suggestion for rest params ( #46628 )
2021-11-03 14:11:39 -07:00
Anders Hejlsberg
33fe1b6ffc
Fix contextual typing for symbol-named properties ( #46558 )
...
* Properly handle symbol-named properties in contextual types
* Update index signature in PropertyDescriptorMap
* Add regression tests
2021-11-02 14:05:41 -07:00
Anders Hejlsberg
56f81075f9
Properly check whether union type contains only primitive types ( #46645 )
...
* Properly check whether union type contains only primitive types
* Add regression test
* Remove 'export' modifier from test
2021-11-02 12:46:26 -07:00
Anders Hejlsberg
7cbcfeea99
Exclude identity relation from mapped type relation check ( #46632 )
...
* Exclude identity relation from mapped type relation check
* Add regression test
2021-11-02 06:54:35 -07:00
Daniel Rosenwasser
f494742ce9
Check for array types when instantiating mapped type constraints with any ( #46218 )
...
* Added/updated tests.
* Accepted baselines.
* Update test.
* Update instantiateMappedType to work specially when 'any' replaced an array.
* Accepted baselines.
* Ensure check works when constraint is a union of arrayish types, just like in `Promise.all`.
* Accepted baselines.
* Update test for indirect instantiation of a mapped type.
* Accepted baselines.
* Update test comment.
* Accepted baselines.
* Added tuple test case.
* Accepted baselines.
* Don't add special behavior for tuples.
* Accepted baselines.
* Revert "Don't add special behavior for tuples."
This reverts commit f01ae16e65 .
* Accepted baselines.
2021-10-27 15:03:01 -07:00
Anders Hejlsberg
44c63a757e
Always cache relations involving intersection types ( #46523 )
...
* Always cache relations involving intersection types
* Accept new baselines
* Add regression test
2021-10-26 09:36:19 -07:00
Andrew Branch
3519af0bab
Fix crash pulling on global types before they're initialized ( #46471 )
...
* Add failing test
* Dumb fix
* Compute error message info more lazily
* One more laziness
2021-10-25 10:53:41 -07:00
Daniel Rosenwasser
334b8eaa57
Bind assignments to 'this' within static blocks in JS files ( #46472 )
...
* Add failing test case.
* Handle 'this' assignments on class static blocks in JavaScript.
* Accepted baselines.
2021-10-22 15:44:35 -07:00
Oleksandr T
ce676d0963
fix(46433): forbid using keywords as parameter names ( #46459 )
2021-10-22 09:58:01 -07:00
Anders Hejlsberg
56b6279818
Improve logic for choosing between co- and contra-variant inferences ( #46392 )
...
* Improve logic for choosing between co- and contra-variant inferences
* Add tests
2021-10-19 09:58:10 -07:00
Oleksandr T
7582b1bbae
fix(45799): skip checking arguments used as a key in object literals ( #45814 )
2021-10-15 10:34:57 -07:00
Anders Hejlsberg
8718df3dc1
Fix stack overflow in JSX discriminated union logic ( #46354 )
...
* Use getContextFreeTypeOfExpression to avoid circularities
* Add regression test
2021-10-14 10:11:44 -07:00
Wesley Wigham
1c5d4e1740
Pass symbol under inspection into checkIndexConstraints ( #46350 )
2021-10-13 17:04:33 -07:00
LowR
cd0434aa76
fix(39744): make template literals more spec compliant ( #45304 )
...
* fix(39744): make template literals more spec compliant
* Add evaluation test for template literals
* Add test for template literals with source map
2021-10-13 12:03:31 -07:00
Anders Hejlsberg
0d2aeb7c65
Improve checks for infinitely expanding recursive conditional types ( #46326 )
...
* Improve checks for infinitely expanding recursive conditional types
* Accept new baselines
* Add regression tests
* Remove 'export' modifier
* Accept new baselines
2021-10-13 07:08:01 -07:00
Wesley Wigham
713afe2227
Set import mode on synthetic imports ( #46327 )
2021-10-12 16:23:37 -07:00
Wesley Wigham
ed9c522fd6
Accept new moduleResolution options on commandline ( #46239 )
2021-10-06 13:17:27 -07:00
Orta Therox
016d78b09e
Allow for class static vars to be called static ( #44813 )
...
* Allow for class static vars to be called static - re: #41127
* Add the baselines
2021-10-01 14:28:08 +01:00
Wesley Wigham
612c92d603
Track source and target relationship stack depth seperately, only increase on change in value ( #41821 )
...
* Track source and target relationship stack depth seperately, only increase on change in value
* Add baselines for test from #43485
* Bail on unwrapping conditional constraints on the source side when the source conditional is already known to be spooling out of control
* More usage of isDeeplyNestedType to block _specifically_ conditional recursion on only one side
* Negative cases of getNarrowedType that match the exact type should be filtered out, even when generic
* Add test and fix for #44404
* Swap to manually specifying left and right recursion
* Rename Left -> Source, Right -> Target
Co-authored-by: Andrew Branch <andrew@wheream.io >
2021-09-30 16:58:40 -07:00
Oleksandr T
e96c10fe0c
fix(26635): allow casts only when JSDoc type directly attached to an expression ( #45960 )
2021-09-29 12:16:27 -07:00
Wesley Wigham
8d5c197f99
keyof should always include remapped keys (#45923 )
...
* Loosen check in getIndexTypeForMappedType to directly map property names when any indexy type is present
* Handle homomorphic mappings better in keyof, add specific relationship rule for relating generic keyof MappedType to handle remapped keys
* Remove trailing whitespace
2021-09-27 19:10:02 -07:00
Anders Hejlsberg
2f0c6070cb
Properly handle missingType in intersections ( #46052 )
...
* Properly handle missingType in intersections
* Add regression tests
* Accept new baselines
* Fix tests
2021-09-26 14:13:42 -07:00
Orta Therox
90e83adb44
Resolve with -lib in TypeScript lib node lookup ( #46046 )
2021-09-24 17:46:29 +01: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
Ron Buckton
4c0a51e14b
Avoid Promise<Awaited<T>> in return type inference ( #45925 )
2021-09-22 16:29:07 -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
Oleksandr T
9b3ba871fb
fix(45987): fix pasring invalid names ( #45994 )
2021-09-21 14:02:58 -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
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
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
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
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
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
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
Zzzen
693c2d08c1
support contextual return type of iife ( #45007 )
2021-08-19 16:37:50 -07:00