Skip to content

Commit e19179b

Browse files
committed
resolve: Add ResolveExpr::funny_error
...and thread it through the constructors and the ResolveExpr::go () method. This will be used for implementing the "break rust" Easter egg. gcc/rust/ChangeLog: * resolve/rust-ast-resolve-expr.h, resolve/rust-ast-resolve-expr.cc: Add ResolveExpr::funny_error Signed-off-by: Sergey Bugaev <[email protected]>
1 parent 78f919d commit e19179b

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

gcc/rust/resolve/rust-ast-resolve-expr.cc

+6-4
Original file line numberDiff line numberDiff line change
@@ -29,9 +29,9 @@ namespace Resolver {
2929

3030
void
3131
ResolveExpr::go (AST::Expr *expr, const CanonicalPath &prefix,
32-
const CanonicalPath &canonical_prefix)
32+
const CanonicalPath &canonical_prefix, bool funny_error)
3333
{
34-
ResolveExpr resolver (prefix, canonical_prefix);
34+
ResolveExpr resolver (prefix, canonical_prefix, funny_error);
3535
expr->accept_vis (resolver);
3636
}
3737

@@ -643,8 +643,10 @@ ResolveExpr::resolve_closure_param (AST::ClosureParam &param,
643643
}
644644

645645
ResolveExpr::ResolveExpr (const CanonicalPath &prefix,
646-
const CanonicalPath &canonical_prefix)
647-
: ResolverBase (), prefix (prefix), canonical_prefix (canonical_prefix)
646+
const CanonicalPath &canonical_prefix,
647+
bool funny_error)
648+
: ResolverBase (), prefix (prefix), canonical_prefix (canonical_prefix),
649+
funny_error (funny_error)
648650
{}
649651

650652
} // namespace Resolver

gcc/rust/resolve/rust-ast-resolve-expr.h

+4-2
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@ class ResolveExpr : public ResolverBase
3131

3232
public:
3333
static void go (AST::Expr *expr, const CanonicalPath &prefix,
34-
const CanonicalPath &canonical_prefix);
34+
const CanonicalPath &canonical_prefix,
35+
bool funny_error = false);
3536

3637
void visit (AST::TupleIndexExpr &expr) override;
3738
void visit (AST::TupleExpr &expr) override;
@@ -83,10 +84,11 @@ class ResolveExpr : public ResolverBase
8384

8485
private:
8586
ResolveExpr (const CanonicalPath &prefix,
86-
const CanonicalPath &canonical_prefix);
87+
const CanonicalPath &canonical_prefix, bool funny_error);
8788

8889
const CanonicalPath &prefix;
8990
const CanonicalPath &canonical_prefix;
91+
bool funny_error;
9092
};
9193

9294
} // namespace Resolver

0 commit comments

Comments
 (0)