// RUN: %target-swift-frontend -assume-parsing-unqualified-ownership-sil -emit-ir %s | %FileCheck %s

sil_stage canonical

import Builtin

class Outer {
  struct Inner {
  }
}

sil_vtable Outer {}

sil @test0 : $@convention(thin) (@thick Outer.Inner.Type) -> (@thick Outer.Type) {
bb0(%0 : $@thick Outer.Inner.Type):
  %1 = metatype $@thick Outer.Type
  return %1 : $@thick Outer.Type
}
// CHECK-LABEL: define{{ | protected }}swiftcc %swift.type* @test0(%swift.type*)
//   TODO: it would be more efficient to get this type from the parent metadata field
// CHECK:      [[T0:%.*]] = call %swift.type* @_T012nested_types5OuterCMa()
// CHECK-NEXT: ret %swift.type* [[T0]]

// CHECK-LABEL: define hidden %swift.type* @_T012nested_types5OuterC5InnerVMa()
// CHECK:      [[T0:%.*]] = load %swift.type*, %swift.type** @_T012nested_types5OuterC5InnerVML
// CHECK-NEXT: [[T1:%.*]] = icmp eq %swift.type* [[T0]], null
// CHECK-NEXT: br i1 [[T1]]
// CHECK:      call void @swift_once({{.*}}* @_T012nested_types5OuterC5InnerVMa.once_token, i8* bitcast (void (i8*)* @initialize_metadata_Inner to i8*), i8* undef)
// CHECK-NEXT: [[T2:%.*]] = load %swift.type*, %swift.type** @_T012nested_types5OuterC5InnerVML
// CHECK-NEXT: br label
// CHECK:      [[T4:%.*]] = phi %swift.type* [ [[T0]], {{.*}} ], [ [[T2]], {{.*}} ]
// CHECK-NEXT: ret %swift.type* [[T4]]

// CHECK-LABEL: define private void @initialize_metadata_Inner
// CHECK:      store atomic %swift.type* bitcast ({{.*}} @_T012nested_types5OuterC5InnerVMf{{.*}} to %swift.type*), %swift.type** @_T012nested_types5OuterC5InnerVML release, align
// CHECK-NEXT: ret void
