Closed consolethinks closed 6 years ago
Le problème est que tu as fait ton switch sur le résultat de result[arc.place]
. result
est de type [PTPlace: Token]
, donc son subscript est de type Token?
. Lorsque tu fais .some(let x)
tu unwrap Token?
, c'est-à-dire Optional<Token>
et pas Token
.
Peut-être que le code suivant clarifiera le problème:
enum Optional<T> {
case some(T)
case none
}
enum Token {
case some(UInt)
case omega
}
let x: Optional<Token> = .some(.some(5))
switch x {
case .some(let a):
// a has type Token
break
case .some(.some(let a)):
// a has type UInt
break
default:
break
}
Je voudrais extraire UInt depuis un Covertability Marking dans le code suivant:
Le compilateur m'envoit un erreur de type incompatible 'Token' et 'UInt'