blob: a4973b40cc1a44f230deaf2234cbd9f331c18709 [file] [log] [blame]
// RUN: %target-swift-frontend -emit-ir -module-name outcopyaddr -primary-file %s | %FileCheck %s
public protocol BaseProt {
}
public protocol ChildProt: BaseProt {
}
public struct BaseStruct<T: BaseProt> {
public typealias Element = T
public var elem1: Element
public var elem2: Element
}
public struct StructWithBaseStruct<T: BaseProt> {
public typealias Element = T
var elem1: Element
var elem2: BaseStruct<Element>
}
// CHECK-LABEL: define hidden swiftcc void @"$S11outcopyaddr010StructWithbc4BaseB0V4elemAA0bcdB0VyxGvg"(%T11outcopyaddr014StructWithBaseB0V.0* noalias nocapture sret, %swift.type* %"StructWithStructWithBaseStruct<T>", %T11outcopyaddr010StructWithbc4BaseB0V* noalias nocapture swiftself)
// CHECK: call %T11outcopyaddr014StructWithBaseB0V.0* @"$S11outcopyaddr014StructWithBaseB0VyxGAA9ChildProtRzlWOc"
public struct StructWithStructWithBaseStruct<T: ChildProt> {
public typealias Element = T
let elem: StructWithBaseStruct<Element>
}