Skip to content

Expected type MarshaledObject for key: node. Got 'Optional<Any>' #145

@JetForMe

Description

@JetForMe

I love Marshal and I'm a bit worried that maybe it's been abandoned, but hopefully you can help me with this:

I've lately started running into this error: Expected type MarshaledObject for key: node. Got 'Optional<Any>'. I can cast the object to [String:Any], but not to [MarshaledObject].

The failure is happening in Unmarshaling.swift:

extension Unmarshaling {
    
    public static func value(from object: Any) throws -> ConvertibleType {
        guard let convertedObject = object as? MarshaledObject else {
            throw MarshalError.typeMismatch(expected: MarshaledObject.self, actual: type(of: object))
        }
        guard let value = try self.init(object: convertedObject) as? ConvertibleType else {
            throw MarshalError.typeMismatch(expected: ConvertibleType.self, actual: type(of: object))
        }
        return value
    }
    
}

If I print the type of the object in the debugger, it's:

(lldb) po type(of: any)
Swift.Optional<Any>

In the debugger it looks like this:

Screen Shot 2021-06-23 at 18 12 07

Swift 5 in Xcode 13b, but also happens in 12.5.1

Thanks!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions