Files
swift-mirror/test/IRGen/report_dead_method_call.swift
Brian Gesiak e1ed229e51 [IRGen] Rewrite dead method test in StdlibUnittest
StdlibUnitest is the preferred system for testing that a certain piece
of code crashes. It's also the only way to get this test to pass when
run on an Android host device, since otherwise the device test runner
exits before confirming the output via FileCheck.
2016-04-25 18:37:11 -04:00

58 lines
1.1 KiB
Swift

// RUN: rm -rf %t
// RUN: mkdir -p %t
// We compile with -O (optimizations) and -disable-access-control (which
// allows use to "call" methods that are removed by dead code elimination).
// RUN: %target-build-swift %S/Inputs/report_dead_method_call/main.swift %s -O -Xfrontend -disable-access-control -o %t/report_dead_method_call
// The private, unused methods are optimized away. The test calls these
// methods anyway (since it has overridden the access control), so we
// expect them to produce "fatal error: call of deleted method" when run.
// RUN: %target-run %t/report_dead_method_call
// REQUIRES: executable_test
private protocol PrivateProto {
func abc()
}
struct PrivateStructC : PrivateProto {
func abc() {
}
}
struct Container {
private var p: PrivateProto = PrivateStructC()
}
@inline(never)
func callProto() {
testProto(Container())
}
private class Base {
func def() {
}
}
private class Derived : Base {
override func def() {
}
}
struct ClassContainer {
private var p: Base = Derived()
}
@inline(never)
func callClass() {
testClass(ClassContainer())
}
public class PublicBase {
private func ghi() {
}
}