]> git.ipfire.org Git - thirdparty/gcc.git/commit
gccrs: Refactor hir to avoid raw pointers and unneeded fwd
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Tue, 15 Oct 2024 13:22:56 +0000 (15:22 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Fri, 21 Mar 2025 11:32:57 +0000 (12:32 +0100)
commit417f4bd3e0bb82e74664417a6c9a7a878e4df462
treebc19e9c0131237710c05338da6996e545a50fb6c
parentd123f43e42f623dfd7dbe63f484197a99ea7f9ed
gccrs: Refactor hir to avoid raw pointers and unneeded fwd

Refactor the hir tree files to remove raw pointer usage and most forward
declarations. Move implementation out of headers and split headers into
smaller and more manageable units.

gcc/rust/ChangeLog:

* Make-lang.in: Add new files.
* hir/tree/rust-hir-item.h: Move Item definition and remove
implementations to their corresponding cc file.
* hir/tree/rust-hir-expr.h: Move implementation to the corresponding
cc file.
* hir/tree/rust-hir-path.h: Likewise.
* hir/tree/rust-hir-pattern.h: Likewise.
* hir/tree/rust-hir-stmt.h: Likewise.
* hir/tree/rust-hir-type.h: Likewise.
* hir/tree/rust-hir-visitor.h: Likewise.
* hir/tree/rust-hir.h: Likewise.
* hir/tree/rust-hir.cc (Crate::Crate): Add implementations from Crate
and remove ConstGenericParam implementations to move them to their
own file.
* hir/tree/rust-hir-attrs.h: New file.
* hir/tree/rust-hir-bound-abstract.h: New file.
* hir/tree/rust-hir-bound.h: New file.
* hir/tree/rust-hir-expr-abstract.h: New file.
* hir/tree/rust-hir-expr.cc: New file.
* hir/tree/rust-hir-generic-param.cc: New file.
* hir/tree/rust-hir-generic-param.h: New file.
* hir/tree/rust-hir-item.cc: New file.
* hir/tree/rust-hir-literal.h: New file.
* hir/tree/rust-hir-node.h: New file.
* hir/tree/rust-hir-path.cc: New file.
* hir/tree/rust-hir-pattern-abstract.h: New file.
* hir/tree/rust-hir-simple-path.h: New file.
* hir/tree/rust-hir-stmt.cc: New file.
* hir/tree/rust-hir-trait-bound.h: New file.
* hir/tree/rust-hir-type-abstract.cc: New file.
* hir/tree/rust-hir-type-abstract.h: New file.
* hir/tree/rust-hir-type-no-bounds.h: New file.
* hir/tree/rust-hir-type.cc: New file.
* hir/tree/rust-hir-visibility.h: New file.
* hir/tree/rust-hir-visitable.h: New file.
* checks/lints/rust-lint-marklive.h: Use References.
* hir/rust-ast-lower-expr.cc (ASTLoweringExpr::visit): Reformat
vectors.
* hir/rust-hir-dump.cc (Dump::visit): Use reference.
* typecheck/rust-hir-type-check-struct.cc (TypeCheckStructExpr::resolve):
Use references.
* typecheck/rust-tyty-bounds.cc: Likewise.

Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
36 files changed:
gcc/rust/Make-lang.in
gcc/rust/checks/lints/rust-lint-marklive.h
gcc/rust/hir/rust-ast-lower-expr.cc
gcc/rust/hir/rust-hir-dump.cc
gcc/rust/hir/tree/rust-hir-attrs.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-bound-abstract.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-bound.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-expr-abstract.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-expr.cc [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-expr.h
gcc/rust/hir/tree/rust-hir-generic-param.cc [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-generic-param.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-item.cc [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-item.h
gcc/rust/hir/tree/rust-hir-literal.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-node.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-path.cc [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-path.h
gcc/rust/hir/tree/rust-hir-pattern-abstract.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-pattern.h
gcc/rust/hir/tree/rust-hir-simple-path.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-stmt.cc [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-stmt.h
gcc/rust/hir/tree/rust-hir-trait-bound.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-type-abstract.cc [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-type-abstract.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-type-no-bounds.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-type.cc [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-type.h
gcc/rust/hir/tree/rust-hir-visibility.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-visitable.h [new file with mode: 0644]
gcc/rust/hir/tree/rust-hir-visitor.h
gcc/rust/hir/tree/rust-hir.cc
gcc/rust/hir/tree/rust-hir.h
gcc/rust/typecheck/rust-hir-type-check-struct.cc
gcc/rust/typecheck/rust-tyty-bounds.cc