* Test update
* Use source file version as default signature for the file whenever there is no dts emit for the file
* json source files from project reference should be able to calculate the signature
* Dont emit declaration map when emitting dts files for force emit for signature
* Use ids as 1 based so we can specialize `0` to be some special meaning
* Baseline tsbuildinfo size in the readable baseline
* Baseline fileName and fileNames list as well in readable tsbuildinfo so that new additions are easy to recognize
* Finally add that missing relationship allowing a type to be assignable to both branches of a conditional
* Explicitly write out Ternary.Maybe
* Add slightly modified example from #25413
* fix sick sentence
* Loosen check to skip false branch constraint check to consider `infer` parameters as always satisfied in the extends clause
* Simplify things a bit, only instantiate once
Co-authored-by: Nathan Shively-Sanders <293473+sandersn@users.noreply.github.com>
* Fix property name bindings for class expr in loops
* Fix block-scope capturing with prop initializers
Co-authored-by: Joey Watts <joey.watts.96@gmail.com>
This was caused by the fact that getTypeWithFacts(resultType, TypeFacts.NEUndefinedOrNull) will return never both if resultType was already never and if resultType does not contain undefined or null. In the latter case returning the declaring type is correct, in the former case this causes something narrowed to never to still be typed as the original declared type.
* Baseline readable buildinfo
* Use file names as index in file name list
This is extension of the idea given by @sokra to optimize size of tsbuildinfo
* Deduplicate reference map lists and use file name index to sort them
Different implementation of #43079 based on idea suggested by @sokra
* Minimal json.stringify for the tsbuildinfo
Again implementaion of suggestion by @sokra
* Update src/testRunner/unittests/tsbuild/helpers.ts
Co-authored-by: Tobias Koppers <tobias.koppers@googlemail.com>
* Readable version of buildinfo all the time
* Some renames for readability as per feedback
Co-authored-by: Tobias Koppers <tobias.koppers@googlemail.com>
* fix receiver of imported and exported functions
fixes: #35420
* Rebase against master and clean up substitution flow
* Add evaluator tests
* Fix evaluator tests
Co-authored-by: Ron Buckton <ron.buckton@microsoft.com>
* About halfway through the checker
I'm going to merge with master to avoid clashing with the declaration
fix.
* Add undefined to Symbol.valueDeclaration
Also add undefined to a number of utility functions that have always
accepted it, but never added it to their type.
* Fix lint from code review
Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com>
* remove obsoleted fix from inferFromUsage
Co-authored-by: Daniel Rosenwasser <DanielRosenwasser@users.noreply.github.com>
* Add undefined to Symbol.declarations' type
Symbol.declarations now has type `Declaration[] | undefined`.
I made a mistake somewhere in the checker related to JS checking, so
there are quite a few test failures right now.
* undo clever change to getDeclaringConstructor
* Address PR comments
1. More early-returns.
2. More line breaks.
* Add 'data' property to completion entry for better cooperation between completions and completion details
* Add doc comment
* Update API baselines
* Add server test
* Test session’s Full result
* Fix tests
* stableSort to fix server fourslash test
* Explicit verification of data parameter
* Tracing: dump more info about substitution types
* Tracing: dump more info about reverse-mapped types
* Tracing: dump more info about destructuring types
* Tracing: dump more info about evolving-array types
* Tracing: dump more info about tuple types
* Tracing: dump more info about type references
* Fix lint errors
* Tracing: extract getLocation helper
* No array literal subtype reduction when contextual type is present
* Accept new baselines
* Fast path in relations and filtering of pure discriminated union types
* Create maps for mixed unions, but not for small or primitive only unions
* Create many-to-many mapping with certain limits, also use in CFA
* Use constituent maps in CFA for switch statements, cleanup, add comments
* Revert change to apparent contextual type / better criteria for map eligibility
* Deduplicate array literal element types
* Accept new baselines
* Filter in false case only when discriminant property has unit type
* Only subtype reduce unions with less than 100 distinct types
* Accept new baselines
* Caching and quick discriminant checks in subtype reduction
* Accept new baselines
* Remove deduplication logic now that subtype reduction was optimized
* Refactor emit substitution into transform
* Add reusable state machine for binary expressions
* Allow emitBinary to use state machine for comments/sourcemaps
* Switch core trampoline state back to arrays
* Switch binder to parallel stacks, temporarily partially revert emitBinary
* Add link to benchmark when posting perf results
* Ensure work stacks are per-execution
* Reenable comments and sourcemaps
* Only enable special assignability rule on string index signatures to 'any'.
* Accepted baselines.
* Added test.
* Accepted baselines.
* Renamed test files.
* Add non-erroring version of bclas'subClassThisTypeAssignable01.ts'
* Accepted baselines.
Co-authored-by: TypeScript Bot <typescriptbot@microsoft.com>
* Fix: checkAliasSymbol crash when checking for @deprecated
It's possible that we shouldn't be creating symbol with no declarations
from non-homomorphic mapped types, but for 4.2, the right fix is to make
the @deprecated-check in checkAliasSymbol ensure that
target.declarations is defined.
* Add bug number and accept baselines
* When structurally comparing similar types, check if we are already in the middle of a more general comparison of those same types
* Do the same, but with only string manipulations
* Improve JSON parser error recovery
* Add error baselines
* Move tsconfig root checking out of common JSON checking function
* Use new function in parseConfigFileTextToJson
* Fix test
* Replace non-null assertion with explicit debug assertion
* Eliminate well-known symbols in the checker: 2021 edition
* Actually update the lib text to say unique symbol, too (this is unneeded with compat code in place, but this makes goto-def make more sense)
* Add test showing mismatched symbol constructor type interop
* Add more test cases for some other related issues this fixes
* Revert computed name change
* Style comments
* When noImplicitAny is set, combine multiple contextual overloads into a single signature, rather than producing `any` and an error
* Amalgamate intersection composite signature return types as intersections, rather than the prior exclusively union behavior
* Add another example from an issue, albeit slightly modified
* Fix newlines, add test from DT
* Interior remodelling