// This source file is part of the Swift.org open source project // Copyright (c) 2014 - 2017 Apple Inc. and the Swift project authors // Licensed under Apache License v2.0 with Runtime Library Exception // // See https://swift.org/LICENSE.txt for license information // See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors // RUN: not %target-swift-frontend %s -typecheck import Foundation class gfe: hg { ji nm: u ba(nm: u) { wv.nm = nm t.ba() } } func ts(ml: u) { } ts(v w on) ({}) lk fed { ji ml: xw } func ay() -> [fed] { kj [] } protocol ay { class func fed() } class ml: ay { class func fed() { } } (ml() w ay).ay.fed() protocol ml { class func sr() } lk fed { ji xw: ml.ut func sr() { xw.sr() } } ji ts = cb ji dcb: o -> o = { kj $dc } edc fed: o = { (ml: o, ts: o -> o) -> o yx kj ts(ml) }(ts, dcb) edc cb: o = { ml, ts yx kj ts(ml) }(ts, dcb) ts sr) func ts() -> (fed, fed -> fed) -> fed { xw ml xw.v = { } { fed) { sr } } protocol ts { class func v() } class xw: ts{ class func v {} protocol ay { } protocol ml : ay { } protocol fed : ay { } protocol xw { r ts = ay } lk sr : xw { r ts = ml } func v (ih: wv) { } func v (ih: ml) { } v(sr()) func fed (((x, x) -> x) -> x) { kj { (edc: (x, x) -> x) -> x yx kj edc(ml, rq) } } func ml(p: (((x, x) -> x) -> x)) -> x { kj p({ (ih: x, kj:x) -> x yx kj ih }) } ml(ay(cb, ay(s, rq))) protocol xw { r B func ml(B) } lk fe : xw { func ml(ml: fe.ut) { } } class xw { } protocol xw { } lk B : xw { } lk sr { } protocol xw { r ml } lk B { edc sr: u edc v: u.ml } protocol sr { r vu func fed(ts: B) } lk gf : sr { r vu = o func fed(ts: B) { } } class ay { } protocol ml { r xw r sr } lk fed : ml { hgf r ts = xw } class ml