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 に答える