hylo icon indicating copy to clipboard operation
hylo copied to clipboard

Generic if-let failurea

Open dabrahams opened this issue 8 months ago • 0 comments

on requirements-machine

extension Optional where T: Movable {
  public fun postfix!() sink -> T {
    if let r: T = self { return r }
    else { fatal_error("force unwrapping nil") }
  }
}

public fun main() {
  let x = 42 as Optional<Int>
  print(x!) // fatal error
}
extension Optional where T: Movable {
  public fun postfix!() sink -> T {
    var me = self
    if let r: T = me { return r }
    else { fatal_error("force unwrapping nil") }
  }
}

public fun main() {
  let x = 42 as Optional<Int>
  print(x!) // prints garbage, for me
}

dabrahams avatar Jun 22 '24 08:06 dabrahams