// RUN: %target-swift-frontend -assume-parsing-unqualified-ownership-sil -emit-ir %s | %FileCheck %s func markUsed(_ t: T) {} protocol A { associatedtype B func b(_: B) } struct X : A { // CHECK-LABEL: define internal swiftcc void @_T023dependent_reabstraction1XVyxGAA1AAAlAaEP1by1BQzFTW(%swift.type** noalias nocapture dereferenceable({{.*}}), %T23dependent_reabstraction1XV* noalias nocapture swiftself, %swift.type* %Self, i8** %SelfWitnessTable) func b(_ b: X.Type) { let x: Any = b markUsed(b as X.Type) } } func foo(_ x: T, _ y: T.B) { x.b(y) } let a = X() let b = X() foo(a, X.self) foo(b, X.self)