Skip to content

Commit d0028e0

Browse files
committed
Test: Improve test coverage for TBDGen.
1 parent 3daa875 commit d0028e0

6 files changed

+89
-11
lines changed

test/AutoDiff/TBD/derivative_symbols.swift

+4
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@ import _Differentiation
88
@differentiable(reverse)
99
public func topLevelDifferentiable(_ x: Float, _ y: Float) -> Float { x }
1010

11+
@differentiable(reverse)
12+
@inlinable
13+
public func topLevelDifferentiableInlinable(_ x: Float, _ y: Float) -> Float { x }
14+
1115
public func topLevelHasDerivative<T: Differentiable>(_ x: T) -> T {
1216
x
1317
}

test/TBD/class.swift

+22
Original file line numberDiff line numberDiff line change
@@ -345,3 +345,25 @@ private class PrivateGeneric<T, U, V> {
345345

346346
private static func privateStaticGeneric<A>(_: A, default_: Int = 0) {}
347347
}
348+
349+
public class PublicDynamicMembers {
350+
public dynamic init() {}
351+
public dynamic convenience init(x: Int) {
352+
self.init()
353+
}
354+
public dynamic func dynamicMethod() {}
355+
public dynamic class func dynamicClassMethod() {}
356+
}
357+
358+
extension PublicDynamicMembers {
359+
@_dynamicReplacement(for: init(x:))
360+
public convenience init(y: Int) {
361+
self.init()
362+
}
363+
364+
@_dynamicReplacement(for: dynamicMethod())
365+
public func methodReplacement() {}
366+
367+
@_dynamicReplacement(for: dynamicClassMethod())
368+
public class func classMethodReplacement() {}
369+
}

test/TBD/function.swift

+5
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ private func privateNoArgs() {}
2121
private func privateSomeArgs(_: Int, x: Int) {}
2222
private func privateWithDefault(_: Int = 0) {}
2323

24+
public dynamic func publicDynamic() {}
25+
26+
@_dynamicReplacement(for: publicDynamic())
27+
public func replacementForPublicDynamic() {}
28+
2429
@_cdecl("c_publicNoArgs") public func publicNoArgsCDecl() {}
2530
@_cdecl("c_publicSomeArgs") public func publicSomeArgsCDecl(_: Int, x: Int) {}
2631
@_cdecl("c_publicWithDefault") public func publicWithDefaultCDecl(_: Int = 0) {}

test/TBD/opaque_result_type.swift

+18-1
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,15 @@ public var globalProp: some O {
2929
return 0
3030
}
3131

32+
public dynamic var dynGlobalProp: some O {
33+
return 1
34+
}
35+
36+
@_dynamicReplacement(for: dynGlobalProp)
37+
public var dynReplacementProp: some O {
38+
return 2
39+
}
40+
3241
public class C: P, Q {
3342
public func poo() -> some O {
3443
return 0
@@ -59,9 +68,17 @@ public func baz<T: P & Q>(z: T) -> some P & Q {
5968
return z
6069
}
6170

71+
public dynamic func dyn(x: String) -> some P {
72+
return x
73+
}
74+
75+
@_dynamicReplacement(for: dyn(x:))
76+
public func dynReplacement(x: String) -> some P {
77+
return "replaced"
78+
}
79+
6280
extension String: P {
6381
public func poo() -> some O {
6482
return 0
6583
}
6684
}
67-

test/TBD/protocol.swift

+18-10
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
// REQUIRES: VENDOR=apple
2-
// RUN: %target-swift-frontend -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s
3-
// RUN: %target-swift-frontend -enable-library-evolution -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s
4-
// RUN: %target-swift-frontend -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s -enable-testing
5-
// RUN: %target-swift-frontend -enable-library-evolution -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s -enable-testing
2+
// RUN: %target-swift-frontend -emit-ir -o/dev/null -parse-as-library -module-name test -disable-objc-attr-requires-foundation-module -validate-tbd-against-ir=all %s
3+
// RUN: %target-swift-frontend -enable-library-evolution -emit-ir -o/dev/null -parse-as-library -module-name test -disable-objc-attr-requires-foundation-module -validate-tbd-against-ir=all %s
4+
// RUN: %target-swift-frontend -emit-ir -o/dev/null -parse-as-library -module-name test -disable-objc-attr-requires-foundation-module -validate-tbd-against-ir=all %s -enable-testing
5+
// RUN: %target-swift-frontend -enable-library-evolution -emit-ir -o/dev/null -parse-as-library -module-name test -disable-objc-attr-requires-foundation-module -validate-tbd-against-ir=all %s -enable-testing
66

7-
// RUN: %target-swift-frontend -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s -O
8-
// RUN: %target-swift-frontend -enable-library-evolution -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s -O
9-
// RUN: %target-swift-frontend -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s -enable-testing -O
10-
// RUN: %target-swift-frontend -enable-library-evolution -emit-ir -o/dev/null -parse-as-library -module-name test -validate-tbd-against-ir=missing %s -enable-testing -O
7+
// RUN: %target-swift-frontend -emit-ir -o/dev/null -parse-as-library -module-name test -disable-objc-attr-requires-foundation-module -validate-tbd-against-ir=missing %s -O
8+
// RUN: %target-swift-frontend -enable-library-evolution -emit-ir -o/dev/null -parse-as-library -module-name test -disable-objc-attr-requires-foundation-module -validate-tbd-against-ir=missing %s -O
9+
// RUN: %target-swift-frontend -emit-ir -o/dev/null -parse-as-library -module-name test -disable-objc-attr-requires-foundation-module -validate-tbd-against-ir=missing %s -enable-testing -O
10+
// RUN: %target-swift-frontend -enable-library-evolution -emit-ir -o/dev/null -parse-as-library -module-name test -disable-objc-attr-requires-foundation-module -validate-tbd-against-ir=missing %s -enable-testing -O
1111

1212
// RUN: %empty-directory(%t)
13-
// RUN: %target-swift-frontend -typecheck -parse-as-library -module-name test %s -emit-tbd -emit-tbd-path %t/typecheck.tbd
14-
// RUN: %target-swift-frontend -emit-ir -parse-as-library -module-name test %s -emit-tbd -emit-tbd-path %t/emit-ir.tbd
13+
// RUN: %target-swift-frontend -typecheck -parse-as-library -module-name test -disable-objc-attr-requires-foundation-module %s -emit-tbd -emit-tbd-path %t/typecheck.tbd
14+
// RUN: %target-swift-frontend -emit-ir -parse-as-library -module-name test -disable-objc-attr-requires-foundation-module %s -emit-tbd -emit-tbd-path %t/emit-ir.tbd
1515
// RUN: diff -u %t/typecheck.tbd %t/emit-ir.tbd
1616

1717
public protocol Public {
@@ -33,6 +33,14 @@ private protocol Private {
3333
var privateVarGetSet: Int { get set }
3434
}
3535

36+
@_marker public protocol PublicMarker {}
37+
@_marker internal protocol InternalMarker {}
38+
@_marker private protocol PrivateMarker {}
39+
40+
@objc public protocol PublicObjc {}
41+
@objc internal protocol InternalObjc {}
42+
@objc private protocol PrivateObjc {}
43+
3644
// Naming scheme: type access, protocol access, witness access, type kind
3745

3846
public struct PublicPublicPublicStruct: Public {

test/TBD/struct.swift

+22
Original file line numberDiff line numberDiff line change
@@ -286,3 +286,25 @@ private struct StructPrivateGeneric<T, U, V> {
286286

287287
private static func privateStaticGeneric<A>(_: A) {}
288288
}
289+
290+
public struct StructDynamicMembers {
291+
public dynamic init() {}
292+
public dynamic init(x: Int) {
293+
self.init()
294+
}
295+
public dynamic func dynamicMethod() {}
296+
public dynamic static func dynamicStaticMethod() {}
297+
}
298+
299+
extension StructDynamicMembers {
300+
@_dynamicReplacement(for: init(x:))
301+
public init(y: Int) {
302+
self.init()
303+
}
304+
305+
@_dynamicReplacement(for: dynamicMethod())
306+
public func methodReplacement() {}
307+
308+
@_dynamicReplacement(for: dynamicStaticMethod())
309+
public static func staticMethodReplacement() {}
310+
}

0 commit comments

Comments
 (0)