Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Manually calling trait function from other crate causes ICE #6865

Closed
DoctorAlpaca opened this issue May 31, 2013 · 2 comments
Closed

Manually calling trait function from other crate causes ICE #6865

DoctorAlpaca opened this issue May 31, 2013 · 2 comments
Labels
I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️

Comments

@DoctorAlpaca
Copy link

These two files cause an ICE:

// foo.rs
#[link(name = "foo", vers = "1.0")];
#[crate_type = "lib"];

pub trait Greeter {
    pub fn greet(&self);
}

pub struct NumberGreeter {
    a: int
}
impl Greeter for NumberGreeter {
    fn greet(&self) { std::io::println(fmt!("Hello, %i!", self.a)); }
}

// test.rs
extern mod foo;

fn main() {
    let g = foo::NumberGreeter { a: 3 };
    foo::Greeter::greet(g);
}

Output:

$ rustc foo.rs
$ RUST_LOG=rustc=1,::rt::backtrace rustc test.rs -L .
rust: ~"failed to find block with tag 12"
rust: task failed at 'explicit failure', /build/rust-incoming-git/src/rust/src/libextra/ebml.rs:204
/usr/lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x4b)[0x7f89fda04bcb]
/usr/lib/librustrt.so(+0x2b081)[0x7f89fda16081]
/usr/lib/librustrt.so(upcall_fail+0x198)[0x7f89fda06bc8]
/usr/lib/libstd-c3ca5d77d81b46c1-0.7-pre.so(_ZN3sys13begin_unwind_17_bdd0fd58907ecc496_07preE+0x366)[0x7f89ffdff0c6]
/usr/lib/libstd-c3ca5d77d81b46c1-0.7-pre.so(+0x1c2992)[0x7f89ffdff992]
/usr/lib/libstd-c3ca5d77d81b46c1-0.7-pre.so(+0x1c2941)[0x7f89ffdff941]
/usr/lib/libstd-c3ca5d77d81b46c1-0.7-pre.so(+0x7e656)[0x7f89ffcbb656]
/usr/lib/libextra-4782a756585a81-0.7-pre.so(_ZN4ebml6reader7get_doc16_773f51e14cfb1cf6_07preE+0x2c0)[0x7f89ff7baef0]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0xd1f13e)[0x7f89fe95913e]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN8metadata7decoder9item_type17_ec3419b7806188186_07preE+0x9b)[0x7f89fe95985b]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN8metadata7decoder8get_type16_c2228267d7a1e5d6_07preE+0xda)[0x7f89fe95f60a]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN8metadata7csearch8get_type17_6e1364c78614b9176_07preE+0x16d)[0x7f89fde6ee3d]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0x524f1e)[0x7f89fe15ef1e]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6middle2ty16lookup_item_type17_6e1364c78614b9176_07preE+0x6d9)[0x7f89fdd87789]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6middle6typeck5check30ty_param_bounds_and_ty_for_def17_866090de7172cb286_07preE+0x316)[0x7f89fe3beec6]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6middle6typeck5check23check_expr_with_unifier17_7c7049a11bf1107d6_07preE+0xa18d)[0x7f89fe3823ed]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6middle6typeck5check10check_expr17_7e31961a3c21a4596_07preE+0xb7)[0x7f89fe3a46f7]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6middle6typeck5check23check_expr_with_unifier17_7c7049a11bf1107d6_07preE+0x53e7)[0x7f89fe37d647]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6middle6typeck5check10check_expr17_7e31961a3c21a4596_07preE+0xb7)[0x7f89fe3a46f7]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6middle6typeck5check10check_stmt16_ebe5585d7823b456_07preE+0x2dd)[0x7f89fe3c7b8d]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0x78f94a)[0x7f89fe3c994a]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0x1b9dfb)[0x7f89fddf3dfb]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0x78e669)[0x7f89fe3c8669]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6middle6typeck5check25check_block_with_expected17_8c2cc7ba3f33507c6_07preE+0x32e)[0x7f89fe32e96e]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6middle6typeck5check8check_fn17_cad51265fe34e7166_07preE+0x1b56)[0x7f89fe32d466]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6middle6typeck5check13check_bare_fn15_7fcb80fdd13b3d6_07preE+0x1f4)[0x7f89fe32b3b4]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6middle6typeck5check10check_item17_652b98865639a38f6_07preE+0x9b8)[0x7f89fe329e18]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0x6ef2b9)[0x7f89fe3292b9]
/usr/lib/libsyntax-db358e1e4f18873e-0.7-pre.so(+0x1409f8)[0x7f89ff03e9f8]
/usr/lib/libsyntax-db358e1e4f18873e-0.7-pre.so(+0xedc9e)[0x7f89fefebc9e]
/usr/lib/libsyntax-db358e1e4f18873e-0.7-pre.so(+0x7bc6b)[0x7f89fef79c6b]
/usr/lib/libsyntax-db358e1e4f18873e-0.7-pre.so(+0xedb08)[0x7f89fefebb08]
/usr/lib/libsyntax-db358e1e4f18873e-0.7-pre.so(+0x14031d)[0x7f89ff03e31d]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0x367aec)[0x7f89fdfa1aec]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6middle6typeck5check16check_item_types17_61ca3b4993c45ec46_07preE+0x434)[0x7f89fe329074]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0x91973e)[0x7f89fe55373e]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0x91934d)[0x7f89fe55334d]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6middle6typeck11check_crate15_9ba0502a48787d6_07preE+0x2de)[0x7f89fe55008e]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6driver6driver12compile_rest17_e22d716d87a8ddff6_07preE+0x1885)[0x7f89fe9989c5]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6driver6driver12compile_upto15_ca4bfd79cad62b6_07preE+0x1a5)[0x7f89fe99eaf5]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN6driver6driver13compile_input17_ec2c213e98ad63496_07preE+0x105)[0x7f89fe99ef85]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN12run_compiler17_af5fd37f675e80386_07preE+0x5fcd)[0x7f89fe9e2ecd]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0xdd133e)[0x7f89fea0b33e]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0xdcdbd6)[0x7f89fea07bd6]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0xdbf58c)[0x7f89fe9f958c]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0xdd1614)[0x7f89fea0b614]
/usr/lib/libstd-c3ca5d77d81b46c1-0.7-pre.so(+0x16c3c2)[0x7f89ffda93c2]
/usr/lib/libstd-c3ca5d77d81b46c1-0.7-pre.so(+0x24ad8c)[0x7f89ffe87d8c]
/usr/lib/librustrt.so(_Z18task_start_wrapperP10spawn_args+0x22)[0x7f89fda05542]
error: internal compiler error: unexpected failure
note: the compiler hit an unexpected failure path. this is a bug
note: try running with RUST_LOG=rustc=1,::rt::backtrace to get further details and report the results to github.com/mozilla/rust/issues
rust: task failed at 'explicit failure', /build/rust-incoming-git/src/rust/src/librustc/rustc.rc:400
/usr/lib/librustrt.so(_ZN9rust_task13begin_failureEPKcS1_m+0x4b)[0x7f89fda04bcb]
/usr/lib/librustrt.so(+0x2b081)[0x7f89fda16081]
/usr/lib/librustrt.so(upcall_fail+0x198)[0x7f89fda06bc8]
/usr/lib/libstd-c3ca5d77d81b46c1-0.7-pre.so(_ZN3sys13begin_unwind_17_bdd0fd58907ecc496_07preE+0x366)[0x7f89ffdff0c6]
/usr/lib/libstd-c3ca5d77d81b46c1-0.7-pre.so(+0x1c2992)[0x7f89ffdff992]
/usr/lib/libstd-c3ca5d77d81b46c1-0.7-pre.so(+0x1c2941)[0x7f89ffdff941]
/usr/lib/libstd-c3ca5d77d81b46c1-0.7-pre.so(+0x7e656)[0x7f89ffcbb656]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN7monitor17_e75279d14384c68f6_07preE+0x15e7)[0x7f89fe9e5867]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(+0xdd1614)[0x7f89fea0b614]
/usr/lib/librustc-e786add3fc752ef5-0.7-pre.so(_ZN4main17_97e178e84d833ffa6_07preE+0x75)[0x7f89fea0b275]
rustc(_rust_main+0x2e)[0x400bfe]
/usr/lib/librustrt.so(_Z18task_start_wrapperP10spawn_args+0x22)[0x7f89fda05542]
rust: domain main @0x21a0c80 root task failed
@luqmana
Copy link
Member

luqmana commented Jun 1, 2013

While this shouldn't be an ICE, that wouldn't be how you'd call the trait's method.

Changing test.rs to this would work:

extern mod foo;
use foo::Greeter;

fn main() {
    let g = foo::NumberGreeter { a: 3 };
    g.greet();
}

So, g.greet() instead of foo::Greeter::greet(g).

@huonw
Copy link
Member

huonw commented Jun 2, 2013

This is the same as #6698.

@jdm jdm closed this as completed Jun 2, 2013
flip1995 pushed a commit to flip1995/rust that referenced this issue Mar 25, 2021
`explicit_deref_methods` improvements

Breaking up rust-lang#6837

changelog: `explicit_deref_methods` will lint chained `deref` calls and ufcs style calls
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
I-ICE Issue: The compiler panicked, giving an Internal Compilation Error (ICE) ❄️
Projects
None yet
Development

No branches or pull requests

4 participants