// 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() { } }