ICE when implementing `Default` for `()`
CohenArthur opened this issue · comments
I tried this code:
#[lang = "sized"]
trait Sized {}
#[stable(feature = "rust1", since = "1.0.0")]
pub trait Default: Sized {
#[stable(feature = "rust1", since = "1.0.0")]
fn default() -> Self;
}
impl Default for () {
fn default() -> () {
()
}
}
I expected to see this happen: no errors.
Instead, this happened:
arthur@platypus ~/G/r/gccrs (master)> build/gcc/crab1 test.rs
crab1: internal compiler error: in visit, at rust/resolve/rust-ast-resolve-item.cc:688
0x25d6586 Rust::Resolver::ResolveItem::visit(Rust::AST::TraitImpl&)
/home/arthur/Git/rust-gcc/gccrs/build/gcc/../../gcc/rust/resolve/rust-ast-resolve-item.cc:688
0x226c3b0 Rust::AST::TraitImpl::accept_vis(Rust::AST::ASTVisitor&)
/home/arthur/Git/rust-gcc/gccrs/build/gcc/../../gcc/rust/ast/rust-ast.cc:4791
0x25d30e6 Rust::Resolver::ResolveItem::go(Rust::AST::Item&, Rust::Resolver::CanonicalPath const&, Rust::Resolver::CanonicalPath const&)
/home/arthur/Git/rust-gcc/gccrs/build/gcc/../../gcc/rust/resolve/rust-ast-resolve-item.cc:174
0x25c4a6b Rust::Resolver::NameResolution::go(Rust::AST::Crate&)
/home/arthur/Git/rust-gcc/gccrs/build/gcc/../../gcc/rust/resolve/rust-ast-resolve.cc:105
0x25c4661 Rust::Resolver::NameResolution::Resolve(Rust::AST::Crate&)
/home/arthur/Git/rust-gcc/gccrs/build/gcc/../../gcc/rust/resolve/rust-ast-resolve.cc:58
0x23a82c9 Rust::Session::compile_crate(char const*)
/home/arthur/Git/rust-gcc/gccrs/build/gcc/../../gcc/rust/rust-session-manager.cc:632
0x23a7b01 Rust::Session::handle_input_files(int, char const**)
/home/arthur/Git/rust-gcc/gccrs/build/gcc/../../gcc/rust/rust-session-manager.cc:416
0x2201ac2 grs_langhook_parse_file()
/home/arthur/Git/rust-gcc/gccrs/build/gcc/../../gcc/rust/rust-lang.cc:165
Please submit a full bug report, with preprocessed source (by using -freport-bug).
Please include the complete backtrace with any bug report.
See <https://gcc.gnu.org/bugs/> for instructions.