Quando ho nido una classe all'interno di una struttura generica e cercare di implementare l'operatore di uguaglianza, in questo modo:Come si implementa un operatore per una classe annidata in una struttura generica?
struct Outer<T> {
class Inner : Equatable {}
}
@infix func == <T>(lhs: Outer<T>.Inner, rhs: Outer<T>.Inner) -> Bool {
return lhs === rhs
}
ricevo il seguente errore quando si tenta di eseguire il progetto:
While emitting IR SIL function @_TFCC4Test5Outer5InnerCU__fMS1_FT_S1_ for 'init' at .../Testing.swift:20:11
<unknown>:0: error: unable to execute command: Segmentation fault: 11
<unknown>:0: error: swift frontend command failed due to signal (use -v to see invocation)
Command /Applications/Xcode6-Beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift failed with exit code 254
Tuttavia , funziona benissimo quando faccio la stessa cosa senza la nidificazione della classe:
class MyClass : Equatable {}
@infix func == (lhs: MyClass, rhs: MyClass) -> Bool {
return lhs === rhs
}
è questo un bug con il compilatore, o sto facendo qualcosa di sbagliato?
Questo è un bug nel il compilatore, dovresti segnalarlo. –
Sì attualmente Le variabili di classe non sono supportate ... che potrebbe essere la causa qui – Jack
Qui non ci sono variabili di classe usate qui, e la stessa cosa accade se sono entrambe le strutture. – Jay