swiftlang/swift

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

Open

#43 891 ouverte le 21 avr. 2016

Voir sur GitHub
 (2 commentaires) (0 réactions) (0 assignés)Swift (10 719 forks)batch import
bugcompilergood first issue

Métriques du dépôt

Stars
 (69 989 stars)
Métriques de merge PR
 (Merge moyen 8j 17h) (510 PRs mergées en 30 j)

Description

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)
        }
    }
}

Guide contributeur