// RUN: %target-typecheck-verify-swift -swift-version 5 class A { var foo: Int? { return 42 } func baz() -> T { fatalError() } func fiz() -> Int { return 42 } } protocol P1 { associatedtype T var foo: Int? { get } func baz() -> T func fiz() -> Int } protocol P2 : P1 { var bar: Int? { get } } extension P2 where Self: A { var bar: Int? { guard let foo = foo else { return 0 } _ = foo let _ = baz() return fiz() } }