Since the closed script info's that are orphan arent removed immediately but on next open request, treat the orphan script infos as if they are not present in the session
* Deduplicate inputfiles before running RWC tests
We deduplicate in the compiler, but we don't in the harness - this causes tests where the same file is listed multiple times in the arguments to not have the expected errors written, because we write out the same file multiple times when we should not.
* Don't completely omit both copied of duplicates
* Remove trailing whitespace
* Maintain list order while filtering duplicates
* Merge adjacent loops
1. `T[K]` now correctly produces `number` when
`K extends string, T extends Record<K, number>`.
2. `T[K]` no longer allows any type to be assigned to it when
`T extends object, K extends keyof T`.
Previously both of these cases failed in
getConstraintOfIndexedAccessType because both bases followed `K`'s base
constraint to `string` and then incorrectly produced `any` for types
(like `object`) with no string index signature. In (1), this produced an
error in checkBinaryLikeExpression`. In (2), this failed to produce an
error in `checkTypeRelatedTo`.
* When in a multi-line comment, we would have liked to use the start of
the comment as a reference point for the indentation inside the comment,
but determining the number of columns shifted for the comment start
woudl require determining the length w/r/t graphemes, which we do not
currently implement. We would like to avoid taking on a runtime
dependency on a grapheme-parsing library.
Instead, we look at the indentation level on the previoud line or start
of the comment as a reference point, and correct shift for lines
starting with an asterisk.
Now, in an assignment to an indexed access of a readonly property, the
resulting type is still the property's type. Previously it was
unknownType. This improves error reporting slightly by reporting some
errors that were previously missed.