mirror of
https://github.com/apple/swift.git
synced 2025-12-14 20:36:38 +01:00
This test depends on comparing the binary .swiftmodule files (with cmp) using the sib and non-sib paths. However, the binary .swiftmodule can differ slightly due to type sugar along this path, so use a textual diff instead... which is also far more readable.
48 lines
1.4 KiB
Swift
48 lines
1.4 KiB
Swift
// RUN: %empty-directory(%t)
|
|
|
|
// RUN: %target-swiftc_driver -emit-module -module-name test %s -o %t/a.swiftmodule
|
|
// RUN: %target-swiftc_driver -emit-sib -module-name test %s -o - | %target-swiftc_driver -emit-module -module-name test -o %t/b.swiftmodule -
|
|
|
|
// RUN: mkdir -p %t/a/
|
|
// RUN: cp %t/a.swiftmodule %t/a/test.swiftmodule
|
|
// RUN: mkdir -p %t/b/
|
|
// RUN: cp %t/b.swiftmodule %t/b/test.swiftmodule
|
|
|
|
// RUN: %target-swift-ide-test -print-module -print-interface -no-empty-line-between-members -module-to-print=test -I %t/a -source-filename=%s > %t.a.swift.txt
|
|
// RUN: %target-swift-ide-test -print-module -print-interface -no-empty-line-between-members -module-to-print=test -I %t/b -source-filename=%s > %t.b.swift.txt
|
|
// RUN: diff -u %t.a.swift.txt %t.b.swift.txt
|
|
|
|
// Diff the SIL
|
|
// RUN: %target-swift-frontend -emit-sil %t/a/test.swiftmodule > %t.a.sil.txt
|
|
// RUN: %target-swift-frontend -emit-sil %t/b/test.swiftmodule > %t.b.sil.txt
|
|
// RUN: diff -u %t.a.sil.txt %t.b.sil.txt
|
|
|
|
|
|
public struct Pair<A, B> {
|
|
public var first : A
|
|
public var second : B
|
|
|
|
public init(a : A, b : B) {
|
|
first = a
|
|
second = b
|
|
}
|
|
}
|
|
|
|
public extension Pair {
|
|
public func swap() -> (B, A) {
|
|
return (second, first)
|
|
}
|
|
}
|
|
|
|
public class MyClass {
|
|
var x : Int
|
|
|
|
public init(input : Int) {
|
|
x = 2 * input
|
|
}
|
|
|
|
public func do_something(input : Int) -> Int {
|
|
return x * input
|
|
}
|
|
}
|