Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[SR-14854] Codable synthesis for enums doesn't work with generics + type nesting #57201

Open
typesanitizer opened this issue Jun 29, 2021 · 1 comment
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself

Comments

@typesanitizer
Copy link

Previous ID SR-14854
Radar rdar://problem/79916494
Original Reporter @typesanitizer
Type Bug
Additional Detail from JIRA
Votes 0
Component/s Compiler
Labels Bug
Assignee None
Priority Medium

md5: c2cda0bd123ff3b431a100385c9e2cbb

Issue Description:

Based on https://forums.swift.org/t/codable-synthesis-for-enums-in-a-generic-context/50105 :

The following code works fine.

struct Container<Element> {
    let options: [Option]
}

extension Container {
    enum Option {
        case first (Element)
        case second (Element)
    }
}

extension Container: Equatable where Element: Equatable {}
extension Container.Option: Equatable where Element: Equatable {}

However, with Xcode 13 beta, it doesn't work if you replace Equatable with Codable.

generic enum type 'Container.Option' is ambiguous without explicit generic parameters when matching value of type 'Container<Element>.Option'

This issue doesn't happen with main so it is likely that some fix was not cherry-picked.

@typesanitizer
Copy link
Author

@swift-ci create

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself
Projects
None yet
Development

No branches or pull requests

1 participant