swiftlang/swift

[SR-1283] RawRepresentable extension for Self:NSCoding breaks implicit RawRepresentable implementation for enums

Offen

#43.891 geöffnet am 21.04.2016

 (2 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Swift (10.719 Forks)batch import
bugcompilergood first issue

Repository-Metriken

Stars
 (69.989 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

Previous ID SR-1283
Radar None
Original Reporter josh (JIRA User)
Type Bug

Apple Swift version 2.2 (swiftlang-703.0.18.1 clang-703.0.29)

Votes 0
Component/s Compiler
Labels Bug, StarterBug
Assignee None
Priority Medium

md5: ebcb1594c186768ea99ccc914c314b25

Issue Description:

Copy + paste attached sample code into a Playground.

import Foundation

enum Status: Int {
    case Good
    case Bad
}

extension RawRepresentable where Self: NSCoding {
    init?(rawValue: NSData) {
        if let instance = NSKeyedUnarchiver.unarchiveObjectWithData(rawValue) as? Self {
            self = instance
        } else {
            return nil
        }
    }
    
    var rawValue: NSData {
        get {
            return NSKeyedArchiver.archivedDataWithRootObject(self)
        }
    }
}

Contributor Guide