* Remove index signatures from js literals, use an object flag to indicate errors should be ignored instead
* Add focused test on the keyof problem
* Fix fourslash test
* Reenable errors with noImplicitAny flag
* Also disable excess property checks outside of noImplicitAny mode for js literals
* Edit and move comments
* Fix#25954 - Always retain export modifier if default modifier is present
* Also fix an issue with scope markers in ambient modules not affecting the modifiers required
* Added reference test case and diagnostics message
* Adjusted arity checks to account for non-contiguous overloads
* Code cleanup, baseline not yet commited
* Accepted test baselines and minor implementation changes
* Cleaned up baseline tracking the now renamed arity check test
* Add range response when range contains only 2 values
* Added recent baseline
* Refined arity error messages when available overloads can be grouped
* Rolled back code formatting
* WIP cleanup needed in a few edge cases
* Finished adding new more descriptive error messages
* Code cleanup
* Added simplified version of bugfix for #19220
* Rebased onto master
* Removed whitespace after type assertion
* Code review simplifications
* Use correct diagnostic name
* Code review changes and simplification of diagnostic message
* Revert formatting changes
* Handle intersection types when looking up base types for visibility
* Extract protected constructor check to function and recur on intersections
* Remove unneeded cast
* Rework symbol visibility checking to allow for multiple potential containers
* Express a preference for the local symbol if accessible from the enclosing declaration
Previously, redirected source files merged the same way as other source
files, effectively causing the target of the redirection to be merged
twice. mergeSymbol now has an assert (`source===target`) that catches
this condition, so this change makes sure to skip redirected source
files.
This change doesn't apply to the preceding binding loop, since the
binder handles already-bound source files correctly.
* Add ncie deep elaborations
* Nice stuff
* Modify tuple error to use length error mroe often
* Accept good baselines
* Accept meh baselines
* Fix literal types
* Calculate elaborations like it was the very first time again~
* Use tristate for enum relationship to ensure elaborations are printed at least once
* Update message text, nits
* move some functions back to where they were
* Add test of deep JSX elaboration
* Add elaboration test with parenthesized expressions, comma expressions, and assignments
* Move check to allow elaborations on more anonymous types
* Fix nits
* Add specialized error to elaborations of nonliteral computed named-members
* Update error message
* Adds related spans and error grouping for duplicate identifier errors
* Trim trailing whitespace
* Record related info in error baselines
* Make error more whimsical
Previously, TypeScript would resolve the reified types for the
`design:types` decorator emit in the regular `currentScope`. That scope
does not include class declaration bodies.
However when reifying types, class declarations do introduce a new scope
for any `TypeVariable`s declared on them. Because TS resolved the
EntityName for such types against the parent scope (e.g. the source
file), not the class scope, TypeScript would either fail to resolve the type (giving `TypeReferenceSerializationKind.Unknown`), or
incorrectly resolve to a different, accidentally matching symbol in the outer scope (giving `TypeWithConstructSignatureAndValue`).
This would result in an emit referencing an undeclared symbol, or
mis-referencing the wrong symbol.
__metadata("design:type", typeof (_a = typeof TypeVariable !== "undefined" && TypeVariable) === "function" && _a || Object)
__metadata("design:type", TypeVariable)
This change special cases `currentScope` for
`serializeTypeReferenceNode` to use a class scope, if present. This
changes the emit for a `TypeVariable` back to `Object`:
__metadata("design:type", Object)