E4083

E4083#

with 模式中的默认值不能引用完整模式引入的绑定变量。默认表达式在外围作用域中求值,而该绑定变量在那里不可用。

错误示例#

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

修改建议#

请使用外围作用域中可用的值。

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