0

对于以下代码:

import io::*;
import to_str::*;

impl <T : to_str copy> of to_str for @[mut T] {
    fn to_str() -> str {
        let tmp = copy self;
        tmp.map(|x| { x.to_str() }).to_str()
    }
}

fn main() {
    println((@[mut 1, 2, 3]).to_str());
}

我收到一个错误:

example.rs:7:8: 7:11 error: internal compiler error: aliased ptr with a non-none lp
example.rs:7         tmp.map(|x| { x.to_str() }).to_str()
                     ^~~

如何解决?还有什么aliased ptr with a non-none lp意思呢?

4

1 回答 1

2

内部编译器错误始终是 Rust 中的错误。当你看到一个问题时,最好的办法是在https://github.com/mozilla/rust/issues提交一个问题,其中包含导致错误的代码。

至于如何解决这个错误,如果你使用~[mut T]而不是@[mut T]?我们最近刚刚添加了@向量,但仍然缺少许多使用它们的库代码。

于 2012-07-16T18:38:32.783 回答