* quickInfo: Don't check for `type === undefined`, check for `any`
* Fixes:
* We still want to do some work even if type is `any`
* Second test for `if (type)` is necessary because it might not have been assigned.
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`.
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`.