// RUN: %target-swift-emit-module-interface(%t.swiftinterface) %s -module-name Test // RUN: %target-swift-typecheck-module-from-interface(%t.swiftinterface) -module-name Test // RUN: %FileCheck %s < %t.swiftinterface public struct Tree { public struct Branch { public struct Nest { public struct Egg {} } } } // CHECK: extension Test.Tree.Branch.Nest.Egg { // CHECK: public static func tweet() // CHECK: } extension Tree.Branch.Nest.Egg { public static func tweet() {} } // CHECK: extension Test.Tree.Branch.Nest.Egg where T == Swift.Int { // CHECK: public static func twoot() // CHECK: } extension Tree.Branch.Nest.Egg { public static func twoot() {} } // CHECK: extension Test.Tree.Branch.Nest.Egg where T == Swift.Int, B == Swift.String { // CHECK: public static func twote() // CHECK: } extension Tree.Branch.Nest.Egg { public static func twote() {} } // CHECK: extension Test.Tree.Branch.Nest.Egg where T == Swift.Int, B == Swift.String, N == () { // CHECK: public static func twite() // CHECK: } extension Tree.Branch.Nest.Egg { public static func twite() {} } // CHECK: extension Swift.Array where Element == Swift.String { // CHECK: public func rejoinder() -> Swift.String // CHECK: } extension [String] { public func rejoinder() -> String { return self.joined() } } // CHECK: public typealias StringDict = [Swift.String : T] public typealias StringDict = [String: T] // CHECK: extension Swift.Dictionary where Key == Swift.String, Value == Swift.Int extension StringDict { public static func mark() {} }