-
Notifications
You must be signed in to change notification settings - Fork 179
hir: Remove EnumItemDiscriminant from HIR #3698
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
base: master
Are you sure you want to change the base?
hir: Remove EnumItemDiscriminant from HIR #3698
Conversation
gcc/rust/ChangeLog: * ast/rust-ast-collector.cc (TokenCollector::visit): Removed. * ast/rust-ast-collector.h (TokenCollector::visit): Removed. * ast/rust-ast-full-decls.h: Removed EnumItemDiscriminant. * ast/rust-ast-visitor.cc (DefaultASTVisitor::visit): Removed. * ast/rust-ast-visitor.h (ASTVisitor::visit): Removed. * ast/rust-ast.cc (EnumItemDiscriminant::as_string): Removed. * ast/rust-item.h (EnumItemDiscriminant): Removed. * expand/rust-cfg-strip.cc (CfgStrip::visit): Removed. * expand/rust-cfg-strip.h (CfgStrip::visit): Removed. * expand/rust-derive.h (DeriveVisitor::visit): Removed. * expand/rust-expand-visitor.cc (ExpandVisitor::visit): Removed. * expand/rust-expand-visitor.h (ExpandVisitor::visit): Removed. * hir/rust-ast-lower-base.cc (ASTLoweringBase::visit): Removed. * hir/rust-ast-lower-base.h (ASTLoweringBase::visit): Removed. * hir/rust-ast-lower-enumitem.h (ASTLoweringEnumItem::visit): Removed. * parse/rust-parse-impl.h (Parser::parse_enum_item): Modified EQUAL case to return EnumItemDiscriminant. * resolve/rust-ast-resolve-base.cc (ResolverBase::visit): Removed. * resolve/rust-ast-resolve-base.h (ResolverBase::visit): Removed. * resolve/rust-ast-resolve-item.cc (ResolveItem::visit): Removed. * resolve/rust-ast-resolve-item.h (ResolveItem::visit): Removed. * resolve/rust-ast-resolve-stmt.h (ResolveStmt::visit): Removed. * resolve/rust-ast-resolve-toplevel.h (ResolveTopLevel::visit): Removed. * resolve/rust-toplevel-name-resolver-2.0.cc (TopLevel::visit): Removed. * resolve/rust-toplevel-name-resolver-2.0.h (TopLevel::visit): Removed. * util/rust-attributes.cc (AttributeChecker::visit): Removed. * util/rust-attributes.h (AttributeChecker::visit): Removed. Addresses Rust-GCC#3340 Signed-off-by: varun-r-mallya <[email protected]>
d6991e2
to
5882614
Compare
gcc/rust/ChangeLog: * ast/rust-ast-collector.cc (TokenCollector::visit): Removed. * backend/rust-compile-item.h (CompileItem::visit): Remove EnumItemDiscriminant case. * backend/rust-compile-stmt.h (CompileStmt::visit): Remove EnumItemDiscriminant case. * checks/errors/borrowck/rust-bir-builder-expr-stmt.h (BIRBuilderExprStmt::visit): Remove EnumItemDiscriminant case. * checks/errors/borrowck/rust-bir-builder-struct.h (BIRBuilderStruct::visit): Remove EnumItemDiscriminant case. * checks/errors/borrowck/rust-function-collector.h (FunctionCollector::visit): Remove EnumItemDiscriminant case. * checks/errors/privacy/rust-privacy-reporter.cc (PrivacyReporter::visit): Remove EnumItemDiscriminant implementation. * checks/errors/privacy/rust-privacy-reporter.h (PrivacyReporter::visit): Remove EnumItemDiscriminant declaration. * checks/errors/rust-const-checker.cc (ConstChecker::visit): Remove EnumItemDiscriminant implementation. * checks/errors/rust-const-checker.h (ConstChecker::visit): Remove EnumItemDiscriminant declaration. * checks/errors/rust-hir-pattern-analysis.cc (PatternChecker::visit): Remove EnumItemDiscriminant implementation. * checks/errors/rust-hir-pattern-analysis.h (PatternChecker::visit): Remove EnumItemDiscriminant declaration. * checks/errors/rust-unsafe-checker.cc (UnsafeChecker::visit): Remove EnumItemDiscriminant implementation. * checks/errors/rust-unsafe-checker.h (UnsafeChecker::visit): Remove EnumItemDiscriminant declaration. * hir/rust-hir-dump.cc (Dump::visit): Remove EnumItemDiscriminant implementation. * hir/rust-hir-dump.h (Dump::visit): Remove EnumItemDiscriminant declaration. * hir/tree/rust-hir-full-decls.h: Remove EnumItemDiscriminant forward declaration. * hir/tree/rust-hir-item.cc (EnumItemDiscriminant::as_string): Remove implementation. (EnumItemDiscriminant::accept_vis): Remove implementation. * hir/tree/rust-hir-item.h: Remove EnumItemDiscriminant class definition. * hir/tree/rust-hir-visitor.h (HIRFullVisitor::visit): Remove EnumItemDiscriminant declaration. (HIRStmtVisitor::visit): Remove EnumItemDiscriminant declaration. * hir/tree/rust-hir.cc (EnumItemDiscriminant::as_string): Remove implementation. (EnumItemDiscriminant::accept_vis): Remove implementation. * typecheck/rust-hir-type-check-enumitem.cc (TypeCheckEnumItem::Resolve): Remove EnumItemDiscriminant case. (TypeCheckEnumItem::visit): Remove EnumItemDiscriminant implementation. * typecheck/rust-hir-type-check-enumitem.h (TypeCheckEnumItem::visit): Remove EnumItemDiscriminant declaration. * typecheck/rust-hir-type-check-stmt.h (TypeCheckStmt::visit): Remove EnumItemDiscriminant case. Addresses Rust-GCC#3340 Signed-off-by: varun-r-mallya <[email protected]>
5882614
to
7669e1b
Compare
* ast/rust-item.h (EnumItem::Kind): Remove Discriminant enum value. * checks/errors/privacy/rust-reachability.cc (ReachabilityVisitor::visit): Remove Discriminant case from enum item handling. * expand/rust-derive-clone.cc (DeriveClone::visit_enum): Remove Discriminant case from enum derivation. * expand/rust-derive-eq.cc (DeriveEq::visit_enum): Remove Discriminant case from equality derivation. * expand/rust-derive-hash.cc (DeriveHash::visit_enum): Remove Discriminant case from hash derivation. * expand/rust-derive-partial-eq.cc (DerivePartialEq::visit_enum): Remove Discriminant case from partial equality derivation. * hir/rust-hir-dump.cc (Dump::do_enumitem): Remove Discriminant variant from dump output. * hir/tree/rust-hir-item.h (EnumItem::EnumItemKind): Remove Discriminant enum variant. * hir/tree/rust-hir.cc (EnumItem::as_string): Remove string representation for Discriminant variant. Addresses Rust-GCC#3340 Signed-off-by: varun-r-mallya <[email protected]>
|
How much ram do you have? |
I have 32 GBs of RAM currently. I think this is an issue particularly due a memory leak I am making in the code. For my other PR, I ran |
return std::unique_ptr<AST::EnumItem> ( | ||
new AST::EnumItem (std::move (item_name), std::move (vis), | ||
std::move (outer_attrs), | ||
item_name_tok->get_locus ())); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No usage of discriminant_expr
in EnumItem
constructor?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think this was removed in #3697. https://github.com/Rust-GCC/gccrs/pull/3355/files#r1907176914 This is why I removed it.
Are you sure this PR is the one you're OOMing on? Edit: is the code causing the memory leak pushed? |
#3698 (comment) |
gcc/rust/ChangeLog:
Addresses #3340
Thank you for making Rust GCC better!
If your PR fixes an issue, you can add "Fixes #issue_number" into this
PR description and the git commit message. This way the issue will be
automatically closed when your PR is merged. If your change addresses
an issue but does not fully fix it please mark it as "Addresses #issue_number"
in the git commit message.
Here is a checklist to help you with your PR.
make check-rust
passes locallyclang-format
gcc/testsuite/rust/
Note that you can skip the above if you are just opening a WIP PR in
order to get feedback.
*Please write a comment explaining your change. This is the message
that will be part of the merge commit.