class A { constructor(a: T) /* primary */ { super/*Any*/() /* () */ } val a: T field = a get } class B { constructor(b: Any) /* primary */ { super/*Any*/() /* () */ } val b: Any field = b get } class C { constructor(c: Any) /* primary */ { super/*Any*/() /* () */ } val c: Any field = c get } fun f(: A, : A, : B) { .().toFloat() /*~> Unit */ .().() /*~> Unit */ .() /*~> Unit */ } val C.p: Int get(: A, : A, : B): Int { .().toFloat() /*~> Unit */ .().() /*~> Unit */ .() /*~> Unit */ .() /*~> Unit */ .() /*~> Unit */ .() /*~> Unit */ return 1 }