// RUN: %target-swift-emit-silgen %s | %FileCheck %s struct Tree { struct Branch { struct Nest { struct Egg {} } } } // CHECK: extension Tree.Branch.Nest.Egg { // CHECK: static func tweet() // CHECK: } // CHECK: extension Tree.Branch.Nest.Egg where T == Int { // CHECK: static func twoot() // CHECK: } // CHECK: extension Tree.Branch.Nest.Egg where T == Int, B == String { // CHECK: static func twote() // CHECK: } // CHECK: extension Tree.Branch.Nest.Egg where T == Int, B == String, N == () { // CHECK: static func twite() // CHECK: } // CHECK: @$s31mangling_specialized_extensions4TreeV6BranchV4NestV3EggV5tweetyyFZ : $@convention(method) (@thin Tree.Branch.Nest.Egg.Type) -> () extension Tree.Branch.Nest.Egg { static func tweet() {} } // CHECK: @$s31mangling_specialized_extensions4TreeV6BranchV4NestV3EggVAASiRszrlE5twootyyFZ : $@convention(method) (@thin Tree.Branch.Nest.Egg.Type) -> () extension Tree.Branch.Nest.Egg { static func twoot() {} } // CHECK: @$s31mangling_specialized_extensions4TreeV6BranchV4NestV3EggVAASiRszSSRsd__rlE5twoteyyFZ : $@convention(method) (@thin Tree.Branch.Nest.Egg.Type) -> () extension Tree.Branch.Nest.Egg { static func twote() {} } // CHECK: @$s31mangling_specialized_extensions4TreeV6BranchV4NestV3EggVAASiRszSSRsd__ytRsd0__rlE5twiteyyFZ : $@convention(method) (@thin Tree.Branch.Nest<()>.Egg.Type) -> () extension Tree.Branch.Nest.Egg { static func twite() {} }