Files
swift-mirror/test/ModuleInterface/static-initialize-objc-metadata-attr.swift
Harlan Haskins 9d08d4f48c [ModuleInterface] Don't print @_staticInitializeObjCMetadata
This attribute is computed during the build and is rejected by the
parser. Make sure not to print it.

Fixes rdar://56923079
2019-11-11 17:25:35 -08:00

23 lines
839 B
Swift

// RUN: %target-swift-frontend -typecheck -emit-module-interface-path - %s -enable-library-evolution -target %target-pre-stable-abi-triple -module-name Module | %FileCheck %s
// REQUIRES: objc_interop
import Foundation
// To infer @_staticInitializeObjCMetadata, the following needs to be true
// Our class needs to be:
// - A subclass of a generic Objective-C class
// - That inherits a conformance to a protocol
// - Declared in a module with a deployment target before the stable ABI
public class Super<T>: NSObject, NSCoding {
required public init(coder: NSCoder) {}
public func encode(with: NSCoder) {}
}
// CHECK-NOT: @_staticInitializeObjCMetadata
// CHECK: public class Sub : Module.Super<Swift.Int>
public class Sub: Super<Int> {
required public init(coder: NSCoder) {}
override public func encode(with: NSCoder) {}
}