// RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) %s -emit-ir | %FileCheck %s

// REQUIRES: objc_interop

sil_stage canonical

import Swift
import Foundation
import objc_generics

// If we define a method on an ObjC generic class in Swift, we don't have
// access to Self's type parameters, and shouldn't try to emit type parameters
// for them either, since they wouldn't be available through the polymorphic
// convention for class methods.

// CHECK-LABEL: define swiftcc void @method(i64, %TSo12GenericClassC* swiftself)
sil @method : $@convention(method) @pseudogeneric <T: AnyObject> (Int64, @guaranteed GenericClass<T>) -> () {
entry(%0 : $Int64, %1 : $GenericClass<T>):
  return undef : $()
}

// CHECK-LABEL: define void @objcMethod(i8*, i8*, i64)
sil @objcMethod : $@convention(objc_method) @pseudogeneric <T: AnyObject> (Int64, @guaranteed GenericClass<T>) -> () {
entry(%0 : $Int64, %1 : $GenericClass<T>):
  return undef : $()
}
