E0070

E0070#

Warning name: deprecated_for_in_method

for .. in 迭代使用了已弃用的方法名。

当一个值被用作 for .. in 循环的来源时,MoonBit 现在会查找 iteriter2。旧方法名 iteratoriterator2 目前仍然可用,但已经被弃用。

错误示例#

///|
struct Bag {}

///|
fn Bag::iterator(_self : Bag) -> Iter[Int] {
  [1, 2, 3].iter()
}

///|
fn sum(bag : Bag) -> Int {
  let mut total = 0
  for value in bag {
    total = total + value
  }
  total
}

///|
test {
  inspect(sum(Bag::{  }), content="6")
}

建议#

iterator 重命名为 iter,或将 iterator2 重命名为 iter2

///|
priv struct Bag {}

///|
fn Bag::iter(_self : Bag) -> Iter[Int] {
  [1, 2, 3].iter()
}

///|
fn sum(bag : Bag) -> Int {
  let mut total = 0
  for value in bag {
    total = total + value
  }
  total
}

///|
test {
  inspect(sum(Bag::{  }), content="6")
}