Follow-up to #473 and #416. Identical strict/noEmit/noLib/skipLibCheck/ES2022 project plus unchanged TS 6.0.3 Promise/PromiseLike declarations. Both pinned TS 6.0.3 and native TS 7.0.2 accept the following, but Home reports TS2322 at label: Type '{ then: any; }' is not assignable to type 'string'.
declare function load<T>(value: T): PromiseLike<T>;
async function mapAsync<T, U>(input: PromiseLike<T>, project: (value: T) => U | PromiseLike<U>): Promise<U> {
return project(await input);
}
async function use(input: { label: string }) {
const mapped = await mapAsync(load(input), value => value.label);
const label: string = mapped;
}Investigate callback inference and generic substitution/awaiting without weakening the U | PromiseLike signature or supplying explicit type arguments to the benchmark. Add positive and wrong-result-type controls, including callbacks returning actual PromiseLike values. Async remains outside the timed suite until this and the other #473 semantic controls pass. Small conventional commits linked to these issues.