Wenn ich Nest eine Klasse innerhalb einer generischen Struktur und versuchen, den Gleichheitsoperator, wie dies umzusetzen:Wie implementiere ich einen Operator für eine Klasse, die in einer generischen Struktur verschachtelt ist?
struct Outer<T> {
class Inner : Equatable {}
}
@infix func == <T>(lhs: Outer<T>.Inner, rhs: Outer<T>.Inner) -> Bool {
return lhs === rhs
}
bekomme ich folgende Fehlermeldung, wenn ich das Projekt auszuführen versuchen:
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
jedoch es funktioniert gut, wenn ich das gleiche tun, um die Klasse ohne Verschachtelung:
class MyClass : Equatable {}
@infix func == (lhs: MyClass, rhs: MyClass) -> Bool {
return lhs === rhs
}
Ist das ein Fehler mit dem Compiler, oder bin ich etwas falsch?
Dies ist ein Fehler in der Compiler, sollten Sie es melden. –
Ja zur Zeit Klassenvariablen werden nicht unterstützt ... was die Ursache sein könnte – Jack
Hier werden keine Klassenvariablen verwendet, und das Gleiche passiert, wenn sie beide Strukturen sind. – Jay