// RUN: %target-sil-opt -enable-sil-verify-all -abcopts %s | FileCheck %s

sil_stage canonical

import Builtin
import Swift

struct ArrayBufferOf {
  var Ts: Builtin.NativeObject
}

struct ArrayOf<T> : _DestructorSafeContainer {
  var Buffer :  ArrayBufferOf
}

struct Foo {
  @sil_stored var subFoos: ArrayOf<Foo>
  init()
}

struct MyInt {
  var v : Builtin.Int32
}

// We used to crash on this example in DestructorAnalysis because the type 'Foo'
// is recursive.

// CHECK-LABEL: sil @handle_recursive_types

sil @handle_recursive_types : $@convention(c) () -> () {
bb0:
  %17 = metatype $@thin ArrayOf<Foo>.Type
  %18 = function_ref @array_init : $@convention(thin) (@thin ArrayOf<Foo>.Type) -> @owned ArrayOf<Foo>
  %19 = apply %18(%17) : $@convention(thin) (@thin ArrayOf<Foo>.Type) -> @owned ArrayOf<Foo>
  %25 = function_ref @array_get_count : $@convention(method) (@owned ArrayOf<Foo>) -> MyInt
  retain_value %19 : $ArrayOf<Foo>
  %27 = apply %25(%19) : $@convention(method) (@owned ArrayOf<Foo>) -> MyInt
  %28 = tuple ()
  release_value %19 : $ArrayOf<Foo>
  return %28 : $()
}

sil [fragile] [_semantics "array.init"] @array_init : $@convention(thin) (@thin ArrayOf<Foo>.Type) -> @owned ArrayOf<Foo>

sil [fragile] [_semantics "array.get_count"] @array_get_count : $@convention(method) (@owned ArrayOf<Foo>) -> MyInt
