
// RUN: %empty-directory(%t)
// RUN: %{python} %utils/chex.py < %s > %t/keypaths_objc.sil
// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -emit-ir %t/keypaths_objc.sil | %FileCheck %t/keypaths_objc.sil --check-prefix=CHECK --check-prefix=CHECK-%target-ptrsize
// REQUIRES: objc_interop

import Swift
import Foundation

class C: NSObject {
  @objc dynamic var x: NSString { get }
  @_hasStorage final var stored: Int
  override init()
}

sil_vtable C {}

sil @x_get : $@convention(thin) (@in_guaranteed C) -> @out NSString

// CHECK: [[KEYPATH_A:@keypath(\..*)?]] = private global
// --             computed, get-only, function-instantiated identifier
// CHECK-SAME: <i32 0x0200_0001>,
// CHECK-SAME: i8* (i8*)* [[SELECTOR_FN:@[A-Za-z0-9_.]+]] to

// CHECK: [[KEYPATH_B:@keypath(\..*)?]] = private global
// --             class mutable stored property with indirect offset
// CHECK-SAME: <i32 0x03fffffd>,
// CHECK-SAME: @"got.$s13keypaths_objc1CC6storedSivpWvd"

// CHECK-LABEL: define swiftcc void @objc_only_property()
sil @objc_only_property : $@convention(thin) () -> () {
entry:
  // CHECK: call %swift.refcounted* @swift_getKeyPath({{.*}} [[KEYPATH_A]]
  %a = keypath $KeyPath<C, NSString>, (objc "x"; root $C; gettable_property $NSString, id #C.x!getter.1.foreign, getter @x_get : $@convention(thin) (@in_guaranteed C) -> @out NSString)
  unreachable
}

sil hidden @$s13keypaths_objc1CC1xSo8NSStringCvgTo : $@convention(objc_method) (@guaranteed C) -> NSString {
entry(%0 : $C):
  unreachable
}

sil hidden @$s13keypaths_objc1CCACycfcTo : $@convention(objc_method) (@objc_metatype C.Type) -> @owned C {
entry(%0 : $@objc_metatype C.Type):
  unreachable
}

// CHECK: define private i8* [[SELECTOR_FN]]
// CHECK-NEXT: entry:
// CHECK-NEXT:   %1 = load {{.*}}selector(x)
// CHECK-NEXT:   ret i8* %1

// CHECK-LABEL: define swiftcc void @objc_stored_property()
sil @objc_stored_property : $@convention(thin) () -> () {
entry:
  // CHECK: call %swift.refcounted* @swift_getKeyPath({{.*}} [[KEYPATH_B]]
  %b = keypath $KeyPath<C, Int>, (objc "stored"; root $C; stored_property #C.stored : $Int)
  unreachable
}
