Closed
Description
@CohenArthur I thought the FAIL that this PR has in nr2 test was caused by my change... but it seems it's caused by my new test case.
crab1: internal compiler error: in visit, at rust/resolve/rust-late-name-resolver-2.0.cc:207
0x259fde4 Rust::Resolver2_0::Late::visit(Rust::AST::PathInExpression&)
../../gcc/rust/resolve/rust-late-name-resolver-2.0.cc:207
0x237a889 Rust::AST::DefaultASTVisitor::visit(Rust::AST::TupleStructPattern&)
../../gcc/rust/ast/rust-ast-visitor.cc:1231
0x2357099 Rust::AST::TupleStructPattern::accept_vis(Rust::AST::ASTVisitor&)
../../gcc/rust/ast/rust-pattern.cc:487
0x237dc25 void Rust::AST::DefaultASTVisitor::visit<Rust::AST::Pattern>(std::unique_ptr<Rust::AST::Pattern, std::default_delete<Rust::AST::Pattern> >&)
../../gcc/rust/ast/rust-ast-visitor.h:409
0x2377cc0 Rust::AST::DefaultASTVisitor::visit(Rust::AST::IfLetExpr&)
../../gcc/rust/ast/rust-ast-visitor.cc:623
0x2377d63 Rust::AST::DefaultASTVisitor::visit(Rust::AST::IfLetExprConseqElse&)
../../gcc/rust/ast/rust-ast-visitor.cc:631
0x2277c51 Rust::AST::IfLetExprConseqElse::accept_vis(Rust::AST::ASTVisitor&)
../../gcc/rust/ast/rust-ast.cc:4645
0x237c2d9 void Rust::AST::DefaultASTVisitor::visit<Rust::AST::Expr>(Rust::AST::Expr&)
../../gcc/rust/ast/rust-ast-visitor.h:405
0x23773bb Rust::AST::DefaultASTVisitor::visit(Rust::AST::BlockExpr&)
../../gcc/rust/ast/rust-ast-visitor.cc:461
0x25803a4 operator()
In :
void
Late::visit (AST::PathInExpression &expr)
{
// TODO: How do we have a nice error with `can't capture dynamic environment
// in a function item` error here?
// do we emit it in `get<Namespace::Labels>`?
rust_debug ("[ARTHUR]: %s", expr.as_simple_path ().as_string ().c_str ());
auto value = ctx.values.resolve_path (expr.get_segments ());
if (!value.has_value ())
rust_unreachable (); // Should have been resolved earlier
Test case :
enum MyOption {
Some(i32),
None,
}
pub fn toto(i : MyOption) -> i32 {
if let MyOption::Some(v) = i {
v
} else {
23i32
}
}
Seen in https://rust.godbolt.org/z/1dYfWGY5T
Originally posted by @dkm in #3064 (comment)
Metadata
Metadata
Assignees
Labels
No labels