Why does assigning a free `this`-returning method to a standalone variable lose the polymorphic guarantee in the following code?
class C {
clone(): this { return this; }
}
class D extends C { extra = 1; }
const fn: () => C = new D().clone; // (a)
const x = fn(); // (b)