-
Notifications
You must be signed in to change notification settings - Fork 221
Open
Labels
Description
Code
Reduced:
trait Number: {
fn from<T: >(n: T) -> Self;
}
trait NumConv {}
fn main() {
let _: f64 = Number::from(0.0f64);
}
Original:
pub trait Number: NumConv {
fn from<T: Number>(n: T) -> Self;
}
trait NumberExt: Number {
fn to_double(&self) -> f64 {
self.to_float() * 2.0
}
}
impl<T: Number> NumberExt for T {}
impl Number for f64 {
fn from<T: Number + NewTrait>(n: T) -> f64 {
n.to_float()
}
}
pub trait NumConv {
fn to_float(&self) -> f64;
}
impl NumConv for f64 {
fn to_float(&self) -> f64 {
*self
}
}
pub fn main() {
let _: f64 = Number::from(0.0f64);
}
trait NewTrait {
type Assoc;
}Meta
Error output
/tmp/trait_fuzzer_rustc_ddbzy8h3/temp_w0_iter_50_original_var_18.rs:17:5: error: bounds not satisfied for f64 'NewTrait' is not satisfied [E0277]
17 | fn from<T: Number + NewTrait>(n: T) -> f64 {
| ^~ ~~~~~~~~
Backtrace
crab1: internal compiler error: in visit, at rust/backend/rust-compile-item.cc:179
0x2c1ef7b internal_error(char const*, ...)
../../gcc/diagnostic-global-context.cc:787
0xb49f7d fancy_abort(char const*, int, char const*)
../../gcc/diagnostics/context.cc:1813
0x914999 Rust::Compile::CompileItem::visit(Rust::HIR::Function&)
../../gcc/rust/backend/rust-compile-item.cc:179
0xd2a658 Rust::Compile::CompileInherentImplItem::Compile(Rust::HIR::ImplItem*, Rust::Compile::Context*, Rust::TyTy::BaseType*, unsigned long)
../../gcc/rust/backend/rust-compile-implitem.h:36
0xd2a658 Rust::Compile::HIRCompileBase::query_compile(unsigned int, Rust::TyTy::BaseType*, Rust::HIR::PathIdentSegment const&, Rust::Analysis::NodeMapping const&, unsigned long, bool)
../../gcc/rust/backend/rust-compile-resolve-path.cc:387
0xd2aab7 Rust::Compile::ResolvePathRef::resolve_with_node_id(Rust::HIR::PathIdentSegment const&, Rust::Analysis::NodeMapping const&, unsigned long, bool, unsigned int)
../../gcc/rust/backend/rust-compile-resolve-path.cc:212
0xd2adb9 Rust::Compile::ResolvePathRef::resolve(Rust::HIR::PathIdentSegment const&, Rust::Analysis::NodeMapping const&, unsigned long, bool)
../../gcc/rust/backend/rust-compile-resolve-path.cc:243
0xd2ae5f Rust::Compile::ResolvePathRef::Compile(Rust::HIR::PathInExpression&, Rust::Compile::Context*)
../../gcc/rust/backend/rust-compile-resolve-path.cc:46
0xf4d2b3 ???
../../gcc/rust/backend/rust-compile-expr.h:59
0xf52601 Rust::Compile::CompileExpr::Compile(Rust::HIR::Expr&, Rust::Compile::Context*)
../../gcc/rust/backend/rust-compile-expr.cc:52
0xf52601 Rust::Compile::CompileExpr::visit(Rust::HIR::CallExpr&)
../../gcc/rust/backend/rust-compile-expr.cc:1396
0xf4e4e4 Rust::Compile::CompileExpr::Compile(Rust::HIR::Expr&, Rust::Compile::Context*)
../../gcc/rust/backend/rust-compile-expr.cc:52
0xf49b22 Rust::Compile::CompileStmt::visit(Rust::HIR::LetStmt&)
../../gcc/rust/backend/rust-compile-stmt.cc:74
0xf49d71 Rust::Compile::CompileStmt::Compile(Rust::HIR::Stmt*, Rust::Compile::Context*)
../../gcc/rust/backend/rust-compile-stmt.cc:36
0xf759ab Rust::Compile::HIRCompileBase::compile_function_body(tree_node*, Rust::HIR::BlockExpr&, Rust::TyTy::BaseType*)
../../gcc/rust/backend/rust-compile-base.cc:607
0xf79319 Rust::Compile::HIRCompileBase::compile_function(bool, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&, tl::optional<Rust::HIR::SelfParam>&, std::vector<Rust::HIR::FunctionParam, std::allocator<Rust::HIR::FunctionParam> >&, Rust::HIR::FunctionQualifiers const&, Rust::HIR::Visibility&, std::vector<Rust::AST::Attribute, std::allocator<Rust::AST::Attribute> >&, unsigned long, Rust::HIR::BlockExpr*, Rust::Resolver::CanonicalPath const&, Rust::TyTy::FnType*)
../../gcc/rust/backend/rust-compile-base.cc:809
0xf47c39 Rust::Compile::CompileItem::visit(Rust::HIR::Function&)
../../gcc/rust/backend/rust-compile-item.cc:231
0xd1cc0a Rust::Compile::CompileItem::compile(Rust::HIR::Item*, Rust::Compile::Context*, Rust::TyTy::BaseType*, unsigned long)
../../gcc/rust/backend/rust-compile-item.h:37
0xd1cc0a Rust::Compile::CompileCrate::go()
../../gcc/rust/backend/rust-compile.cc:48
0xd1cc98 Rust::Compile::CompileCrate::Compile(Rust::HIR::Crate&, Rust::Compile::Context*)
../../gcc/rust/backend/rust-compile.cc:41
/home/gccrs/build/gcc/crab1 /tmp/trait_fuzzer_rustc_ddbzy8h3/temp_w0_iter_50_original_var_18.rs -frust-incomplete-and-experimental-compiler-do-not-use
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.
Reactions are currently unavailable