// RUN: %target-swift-frontend -typecheck -verify -swift-version 4 %s struct Foo { mutating func boom() {} } let x = Foo.boom // expected-warning{{partial application of 'mutating' method}} var y = Foo() let z0 = y.boom // expected-error{{partial application of 'mutating' method}} let z1 = Foo.boom(&y) // expected-error{{partial application of 'mutating' method}} func fromLocalContext() -> (inout Foo) -> () -> () { return Foo.boom // expected-warning{{partial application of 'mutating' method}} } func fromLocalContext2(x: inout Foo, y: Bool) -> () -> () { if y { return x.boom // expected-error{{partial application of 'mutating' method}} } else { return Foo.boom(&x) // expected-error{{partial application of 'mutating' method}} } }