Apply -> Never.

pull/1/head
Matthew Chen 7 years ago
parent d01023d862
commit 7be8f30877

@ -25,11 +25,11 @@ class AddContactShareToExistingContactViewController: ContactsPicker, ContactsPi
} }
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
@objc required public init(allowsMultipleSelection: Bool, subtitleCellType: SubtitleCellValue) { @objc required public init(allowsMultipleSelection: Bool, subtitleCellType: SubtitleCellValue) {
fatalError("init(allowsMultipleSelection:subtitleCellType:) has not been implemented") notImplemented()
} }
// MARK: - ContactsPickerDelegate // MARK: - ContactsPickerDelegate

@ -136,7 +136,7 @@ class CallViewController: OWSViewController, CallObserver, CallServiceObserver,
@available(*, unavailable, message: "use init(call:) constructor instead.") @available(*, unavailable, message: "use init(call:) constructor instead.")
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("Unimplemented") notImplemented()
} }
required init(call: SignalCall) { required init(call: SignalCall) {

@ -31,7 +31,7 @@ class ColorView: UIView {
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
} }
@ -66,7 +66,7 @@ class ColorPickerViewController: UIViewController, UIPickerViewDelegate, UIPicke
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
override func loadView() { override func loadView() {

@ -45,7 +45,7 @@ class ContactViewController: OWSViewController, ContactShareViewHelperDelegate {
@available(*, unavailable, message: "use init(call:) constructor instead.") @available(*, unavailable, message: "use init(call:) constructor instead.")
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("Unimplemented") notImplemented()
} }
@objc @objc

@ -87,7 +87,7 @@ public class ContactsPicker: OWSViewController, UITableViewDelegate, UITableView
} }
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
// MARK: - Lifecycle Methods // MARK: - Lifecycle Methods

@ -103,11 +103,11 @@ public class ConversationHeaderView: UIStackView {
} }
required public init(coder: NSCoder) { required public init(coder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
required public override init(frame: CGRect) { required public override init(frame: CGRect) {
fatalError("init(frame:) has not been implemented") notImplemented()
} }
public override var intrinsicContentSize: CGSize { public override var intrinsicContentSize: CGSize {

@ -75,7 +75,7 @@ import SignalMessaging
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("\(#function) is unimplemented.") notImplemented()
} }
@objc required init(srcImage: UIImage, successCompletion : @escaping (UIImage) -> Void) { @objc required init(srcImage: UIImage, successCompletion : @escaping (UIImage) -> Void) {

@ -21,7 +21,7 @@
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
override func viewDidLoad() { override func viewDidLoad() {

@ -418,7 +418,7 @@ private class ExperienceUpgradeViewController: OWSViewController {
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
override func loadView() { override func loadView() {
@ -508,7 +508,7 @@ public class ExperienceUpgradesPageViewController: OWSViewController, UIPageView
@available(*, unavailable, message:"unavailable, use initWithExperienceUpgrade instead") @available(*, unavailable, message:"unavailable, use initWithExperienceUpgrade instead")
@objc @objc
public required init?(coder aDecoder: NSCoder) { public required init?(coder aDecoder: NSCoder) {
fatalError("unimplemented") notImplemented()
} }
// MARK: - View lifecycle // MARK: - View lifecycle

@ -21,7 +21,7 @@ class GifPickerLayout: UICollectionViewLayout {
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("\(#function) is unimplemented.") notImplemented()
} }
override init() { override init() {

@ -55,7 +55,7 @@ class GifPickerViewController: OWSViewController, UISearchBarDelegate, UICollect
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("\(#function) is unimplemented.") notImplemented()
} }
@objc @objc

@ -431,7 +431,7 @@ class EmptySearchResultCell: UITableViewCell {
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
public func configure(searchText: String) { public func configure(searchText: String) {

@ -47,6 +47,6 @@ public class MessageStatusView: UIView {
} }
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
} }

@ -21,7 +21,7 @@ public class LongTextViewController: OWSViewController {
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
public required init?(coder aDecoder: NSCoder) { public required init?(coder aDecoder: NSCoder) {
fatalError("\(#function) is unimplemented.") notImplemented()
} }
@objc @objc

@ -217,7 +217,7 @@ class MediaGalleryViewController: OWSNavigationController, MediaGalleryDataSourc
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
// HACK: Though we don't have an input accessory view, the VC we are presented above (ConversationVC) does. // HACK: Though we don't have an input accessory view, the VC we are presented above (ConversationVC) does.

@ -116,7 +116,7 @@ class MediaPageViewController: UIPageViewController, UIPageViewControllerDataSou
@available(*, unavailable, message: "Unimplemented") @available(*, unavailable, message: "Unimplemented")
required init?(coder: NSCoder) { required init?(coder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
deinit { deinit {

@ -65,7 +65,7 @@ public class MediaTileViewController: UICollectionViewController, MediaGalleryDa
} }
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
// MARK: View Lifecycle Overrides // MARK: View Lifecycle Overrides
@ -791,7 +791,7 @@ private class MediaGallerySectionHeader: UICollectionReusableView {
@available(*, unavailable, message: "Unimplemented") @available(*, unavailable, message: "Unimplemented")
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
public func configure(title: String) { public func configure(title: String) {
@ -824,7 +824,7 @@ private class MediaGalleryStaticHeader: UICollectionViewCell {
@available(*, unavailable, message: "Unimplemented") @available(*, unavailable, message: "Unimplemented")
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
public func configure(title: String) { public func configure(title: String) {
@ -917,7 +917,7 @@ private class MediaGalleryCell: UICollectionViewCell {
@available(*, unavailable, message: "Unimplemented") @available(*, unavailable, message: "Unimplemented")
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
public func configure(item: MediaGalleryItem) { public func configure(item: MediaGalleryItem) {

@ -52,7 +52,7 @@ class MenuActionsViewController: UIViewController, MenuActionSheetDelegate {
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
// MARK: View LifeCycle // MARK: View LifeCycle
@ -304,7 +304,7 @@ class MenuActionSheetView: UIView, MenuActionViewDelegate {
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("not implemented") notImplemented()
} }
@objc @objc
@ -486,6 +486,6 @@ class MenuActionView: UIButton {
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("not implemented") notImplemented()
} }
} }

@ -47,7 +47,7 @@ class MessageDetailViewController: OWSViewController, MediaGalleryDataSourceDele
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("\(#function) is unimplemented.") notImplemented()
} }
@objc @objc

@ -75,7 +75,7 @@ class AttachmentPointerView: UIStackView {
@available(*, unavailable, message: "use init(call:) constructor instead.") @available(*, unavailable, message: "use init(call:) constructor instead.")
required init(coder aDecoder: NSCoder) { required init(coder aDecoder: NSCoder) {
fatalError("Unimplemented") notImplemented()
} }
private static var vSpacing: CGFloat = 5 private static var vSpacing: CGFloat = 5

@ -48,7 +48,7 @@ import SignalServiceKit
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
@objc public required init?(coder aDecoder: NSCoder) { @objc public required init?(coder aDecoder: NSCoder) {
fatalError("\(#function) is unimplemented.") notImplemented()
} }
public required init() { public required init() {

@ -50,7 +50,7 @@ class ContactCell: UITableViewCell {
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
override func prepareForReuse() { override func prepareForReuse() {

@ -30,7 +30,7 @@ class DismissInputBar: UIToolbar {
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
@objc @objc
@ -55,7 +55,7 @@ public class DismissableTextField: UITextField, DismissInputBarDelegate {
} }
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
// MARK: DismissInputBarDelegate // MARK: DismissInputBarDelegate

@ -39,7 +39,7 @@ import SignalServiceKit
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
@objc @objc

@ -21,7 +21,7 @@ class QuotedReplyPreview: UIView {
@objc @objc
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
@objc @objc

@ -32,12 +32,12 @@ class ReminderView: UIView {
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("\(#function) is unimplemented.") notImplemented()
} }
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
override init(frame: CGRect) { override init(frame: CGRect) {
fatalError("\(#function) is unimplemented.") notImplemented()
} }
private init(mode: ReminderViewMode, private init(mode: ReminderViewMode,

@ -48,7 +48,7 @@ class ToastView: UIView {
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
// MARK: Gestures // MARK: Gestures
@ -86,7 +86,7 @@ class ToastController: NSObject, ToastViewDelegate {
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
// MARK: Public // MARK: Public

@ -38,7 +38,7 @@ public class AttachmentApprovalViewController: OWSViewController, CaptioningTool
@available(*, unavailable, message:"use attachment: constructor instead.") @available(*, unavailable, message:"use attachment: constructor instead.")
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("unimplemented") notImplemented()
} }
@objc @objc
@ -494,7 +494,7 @@ class CaptioningToolbar: UIView, UITextViewDelegate {
var textViewHeight: CGFloat var textViewHeight: CGFloat
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
class MessageTextView: UITextView { class MessageTextView: UITextView {

@ -8,7 +8,7 @@ public class ContactFieldView: UIView {
@available(*, unavailable, message: "use other constructor instead.") @available(*, unavailable, message: "use other constructor instead.")
public required init?(coder aDecoder: NSCoder) { public required init?(coder aDecoder: NSCoder) {
fatalError("Unimplemented") notImplemented()
} }
public required init(rows: [UIView], hMargin: CGFloat) { public required init(rows: [UIView], hMargin: CGFloat) {

@ -159,7 +159,7 @@ class ContactShareFieldView: UIStackView {
@available(*, unavailable, message: "use init(call:) constructor instead.") @available(*, unavailable, message: "use init(call:) constructor instead.")
required init(coder aDecoder: NSCoder) { required init(coder aDecoder: NSCoder) {
fatalError("Unimplemented") notImplemented()
} }
required init(field: ContactShareField, previewViewBlock : @escaping (() -> UIView), delegate: ContactShareFieldViewDelegate) { required init(field: ContactShareField, previewViewBlock : @escaping (() -> UIView), delegate: ContactShareFieldViewDelegate) {
@ -236,7 +236,7 @@ public class ContactShareApprovalViewController: OWSViewController, EditContactS
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("unimplemented") notImplemented()
} }
@objc @objc

@ -26,7 +26,7 @@ class ContactNameFieldView: UIView {
@available(*, unavailable, message: "use other constructor instead.") @available(*, unavailable, message: "use other constructor instead.")
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("Unimplemented") notImplemented()
} }
required init(name: String, value: String?, delegate: ContactNameFieldViewDelegate) { required init(name: String, value: String?, delegate: ContactNameFieldViewDelegate) {
@ -136,7 +136,7 @@ public class EditContactShareNameViewController: OWSViewController, ContactNameF
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("unimplemented") notImplemented()
} }
@objc @objc

@ -56,7 +56,7 @@ public class MediaMessageView: UIView, OWSAudioPlayerDelegate {
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("\(#function) is unimplemented.") notImplemented()
} }
// Currently we only use one mode (AttachmentApproval), so we could simplify this class, but it's kind // Currently we only use one mode (AttachmentApproval), so we could simplify this class, but it's kind

@ -28,7 +28,7 @@ public class MessageApprovalViewController: OWSViewController, UITextViewDelegat
@available(*, unavailable, message:"use attachment: constructor instead.") @available(*, unavailable, message:"use attachment: constructor instead.")
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("unimplemented") notImplemented()
} }
@objc @objc

@ -26,7 +26,7 @@ public class ModalActivityIndicatorViewController: OWSViewController {
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
public required init?(coder aDecoder: NSCoder) { public required init?(coder aDecoder: NSCoder) {
fatalError("\(#function) is unimplemented.") notImplemented()
} }
public required init(canCancel: Bool) { public required init(canCancel: Bool) {

@ -92,7 +92,7 @@ public class ConversationAvatarImageView: AvatarImageView {
} }
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
@objc func handleSignalAccountsChanged(notification: Notification) { @objc func handleSignalAccountsChanged(notification: Notification) {

@ -49,7 +49,7 @@ public class DisappearingTimerConfigurationView: UIView {
private var pressGesture: UILongPressGestureRecognizer! private var pressGesture: UILongPressGestureRecognizer!
public required init?(coder aDecoder: NSCoder) { public required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
@objc @objc

@ -14,7 +14,7 @@ public class GradientView: UIView {
} }
public required init?(coder aDecoder: NSCoder) { public required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
public override func layoutSubviews() { public override func layoutSubviews() {

@ -34,7 +34,7 @@ public class OWSFlatButton: UIView {
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("\(#function) is unimplemented.") notImplemented()
} }
private func createContent() { private func createContent() {

@ -35,7 +35,7 @@ public class OWSNavigationBar: UINavigationBar {
} }
public required init?(coder aDecoder: NSCoder) { public required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
@objc @objc

@ -12,7 +12,7 @@ public class TappableStackView: UIStackView {
@available(*, unavailable, message: "use other constructor instead.") @available(*, unavailable, message: "use other constructor instead.")
public required init(coder aDecoder: NSCoder) { public required init(coder aDecoder: NSCoder) {
fatalError("Unimplemented") notImplemented()
} }
public required init(actionBlock : @escaping () -> Void) { public required init(actionBlock : @escaping () -> Void) {

@ -11,7 +11,7 @@ public class TappableView: UIView {
@available(*, unavailable, message: "use other constructor instead.") @available(*, unavailable, message: "use other constructor instead.")
public required init?(coder aDecoder: NSCoder) { public required init?(coder aDecoder: NSCoder) {
fatalError("Unimplemented") notImplemented()
} }
public required init(actionBlock : @escaping () -> Void) { public required init(actionBlock : @escaping () -> Void) {

@ -47,7 +47,7 @@ class TrackingSlider: UISlider {
} }
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
} }
@ -98,7 +98,7 @@ public class PlayerProgressBar: UIView {
} }
required public init?(coder aDecoder: NSCoder) { required public init?(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented") notImplemented()
} }
override public init(frame: CGRect) { override public init(frame: CGRect) {

@ -20,10 +20,8 @@ public func assertOnQueue(_ queue: DispatchQueue) {
public func AssertIsOnMainThread(file: String = #file, public func AssertIsOnMainThread(file: String = #file,
function: String = #function, function: String = #function,
line: Int = #line) { line: Int = #line) {
guard Thread.isMainThread else { if !Thread.isMainThread {
let filename = (file as NSString).lastPathComponent owsFail("Must be on main thread.", file: file, function: function, line: line)
owsFail("\(filename):\(line) in \(function): Must be on main thread.")
return
} }
} }
@ -33,11 +31,10 @@ public func owsFail(_ logMessage: String,
file: String = #file, file: String = #file,
function: String = #function, function: String = #function,
line: Int = #line) { line: Int = #line) {
// TODO: Format using owsFormatLogMessage() once it is merged. Logger.error(logMessage, file: file, function: function, line: line)
let message = "\(file) \(function) \(line): \(logMessage)"
Logger.error(message)
Logger.flush() Logger.flush()
assertionFailure(message) let formattedMessage = owsFormatLogMessage(logMessage, file: file, function: function, line: line)
assertionFailure(formattedMessage)
} }
// Once we're on Swift4.2 we can mark this as inlineable // Once we're on Swift4.2 we can mark this as inlineable
@ -45,8 +42,17 @@ public func owsFail(_ logMessage: String,
public func owsProdExit(_ logMessage: String, public func owsProdExit(_ logMessage: String,
file: String = #file, file: String = #file,
function: String = #function, function: String = #function,
line: Int = #line) { line: Int = #line) -> Never {
owsFail(logMessage, file: file, function: function, line: line) owsFail(logMessage, file: file, function: function, line: line)
fatalError(logMessage) let formattedMessage = owsFormatLogMessage(logMessage, file: file, function: function, line: line)
fatalError(formattedMessage)
}
// Once we're on Swift4.2 we can mark this as inlineable
// @inlinable
public func notImplemented(file: String = #file,
function: String = #function,
line: Int = #line) -> Never {
owsProdExit("Method not implemented.", file: file, function: function, line: line)
} }

@ -29,7 +29,7 @@ class SAEFailedViewController: UIViewController {
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("\(#function) is unimplemented.") notImplemented()
} }
override func loadView() { override func loadView() {

@ -50,7 +50,7 @@ class SAELoadViewController: UIViewController {
@available(*, unavailable, message:"use other constructor instead.") @available(*, unavailable, message:"use other constructor instead.")
required init?(coder aDecoder: NSCoder) { required init?(coder aDecoder: NSCoder) {
fatalError("\(#function) is unimplemented.") notImplemented()
} }
override func loadView() { override func loadView() {

Loading…
Cancel
Save