// RUN: %target-repl-run-simple-swift | %FileCheck %s // REQUIRES: swift_repl protocol Fooable { func foo() } class C {} class D: C {} func fooify(x: T) { if let foo = x as? Fooable { foo.foo() } else { print("--not fooable--") } } fooify(1) // CHECK: --not fooable-- fooify(1) // CHECK: --not fooable-- fooify(C()) // CHECK: --not fooable-- fooify(C()) // CHECK: --not fooable-- fooify(D()) // CHECK: --not fooable-- fooify(D()) // CHECK: --not fooable-- extension Int: Fooable { func foo() { print("--Int--") } } fooify(1) // CHECK: --Int-- fooify(1) // CHECK: --Int-- extension D: Fooable { func foo() { print("--D--") } } fooify(D()) // CHECK: D fooify(D()) // CHECK: D fooify(C()) // CHECK: --not fooable-- fooify(C()) // CHECK: --not fooable--