// RUN: %target-typecheck-verify-swift -swift-version 4 // RUN: %target-typecheck-verify-swift -swift-version 4 -enable-testing private func privateFunction() {} // expected-note@-1 4{{global function 'privateFunction()' is not public}} fileprivate func fileprivateFunction() {} // expected-note@-1 4{{global function 'fileprivateFunction()' is not public}} func internalFunction() {} // expected-note@-1 4{{global function 'internalFunction()' is not public}} @_versioned func versionedFunction() {} public func publicFunction() {} func internalIntFunction() -> Int {} // expected-note@-1 2{{global function 'internalIntFunction()' is not public}} func internalFunctionWithDefaultValue( x: Int = { struct Nested {} // OK publicFunction() // OK versionedFunction() // OK internalFunction() // OK fileprivateFunction() // OK privateFunction() // OK return 0 }(), y: Int = internalIntFunction()) {} @_versioned func versionedFunctionWithDefaultValue( x: Int = { struct Nested {} // expected-error@-1 {{type 'Nested' cannot be nested inside a default argument value}} // FIXME: Some errors below are diagnosed twice publicFunction() // OK versionedFunction() // OK internalFunction() // expected-error@-1 2{{global function 'internalFunction()' is internal and cannot be referenced from a default argument value}} fileprivateFunction() // expected-error@-1 2{{global function 'fileprivateFunction()' is fileprivate and cannot be referenced from a default argument value}} privateFunction() // expected-error@-1 2{{global function 'privateFunction()' is private and cannot be referenced from a default argument value}} return 0 }(), y: Int = internalIntFunction()) {} // expected-error@-1 {{global function 'internalIntFunction()' is internal and cannot be referenced from a default argument value}} public func publicFunctionWithDefaultValue( x: Int = { struct Nested {} // expected-error@-1 {{type 'Nested' cannot be nested inside a default argument value}} // FIXME: Some errors below are diagnosed twice publicFunction() // OK versionedFunction() // OK internalFunction() // expected-error@-1 2{{global function 'internalFunction()' is internal and cannot be referenced from a default argument value}} fileprivateFunction() // expected-error@-1 2{{global function 'fileprivateFunction()' is fileprivate and cannot be referenced from a default argument value}} privateFunction() // expected-error@-1 2{{global function 'privateFunction()' is private and cannot be referenced from a default argument value}} return 0 }(), y: Int = internalIntFunction()) {} // expected-error@-1 {{global function 'internalIntFunction()' is internal and cannot be referenced from a default argument value}} // https://bugs.swift.org/browse/SR-5559 public class MyClass { public func method(_: T.Type = T.self) -> T { } }