// Please keep this file in alphabetical order! // RUN: %empty-directory(%t) // RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -emit-module -o %t %s -module-name generic -disable-objc-attr-requires-foundation-module // RUN: %target-swift-frontend(mock-sdk: %clang-importer-sdk) -parse-as-library %t/generic.swiftmodule -typecheck -emit-objc-header-path %t/generic.h -import-objc-header %S/../Inputs/empty.h -disable-objc-attr-requires-foundation-module // RUN: %FileCheck %s < %t/generic.h // RUN: %FileCheck -check-prefix=NEGATIVE %s < %t/generic.h // RUN: %check-in-clang %t/generic.h // REQUIRES: objc_interop import ObjectiveC // CHECK-LABEL: @interface ConcreteClass // CHECK-NEXT: init // CHECK-NEXT: @end @objc class ConcreteClass {} // CHECK-NOT: @interface GenericSubclass // NEGATIVE-NOT: @interface GenericSubclass class GenericSubclass : ConcreteClass {} // CHECK-NOT: @interface NonGenericSubclass // NEGATIVE-NOT: @interface NonGenericSubclass class NonGenericSubclass : GenericSubclass {} // CHECK-LABEL: @interface TopMoviesOfAllTime // CHECK-NEXT: rambo // CHECK-NEXT: init // CHECK-NOT: rocky // NEGATIVE-NOT: rocky // CHECK-NEXT: @end @objc class TopMoviesOfAllTime { func rambo(c: ConcreteClass) {} func rocky(c: NonGenericSubclass) {} }