E4083

E4083#

with パターンのデフォルト値は、パターン全体で導入されるバインダーを参照できません。デフォルト式は外側のスコープで評価され、そこではそのバインダーを使用できません。

誤った例#

///|
pub fn value_or(value : Int?, result : Int) -> Int {
  match value {
    Some(result) | (None with result = result) => result
  }
}

修正方法#

外側のスコープで使用できる値を使います。

///|
pub fn value_or(value : Int?, fallback : Int) -> Int {
  match value {
    Some(result) | (None with result = fallback) => result
  }
}