Error : Assertion failed: ((conforms || firstArchetype->getIsRecursive() || isOpenedAnyObject(replacement) || replacement->is<GenericTypeParamType>()) && "Constraint system missed a conformance?")

Occurs when you do this with extensions :


protocol Ordered {
  func precedes(other: Self) -> Bool
}

class Number {
  var value: Double = 0
}

extension Number: Ordered {
  func precedes(other: Number) -> Bool {
  return self.value < other.value
  }
}

extension Ordered where Self: Comparable {
  func precedes(other: Self) -> Bool {
  return self < other
  }
}


Reported in navigator as "Command failed due to signal: Abort trap: 6"


Either of those extensions compiles fine by itself, crash only occurs when they both exist together.


Workaround :


extension Ordered where Self: Number {
  func precedes(other: Number) -> Bool {
  return self.value < other.value
  }
}


Radar

21401180


HTH

My bad, still crashes as son as you add the necessary :


extension Number : Ordered {}


So unfortunatley, that workaround is not hekpful after all :-(

Error : Assertion failed: ((conforms || firstArchetype-&gt;getIsRecursive() || isOpenedAnyObject(replacement) || replacement-&gt;is&lt;GenericTypeParamType&gt;()) && "Constraint system missed a conformance?")
 
 
Q