]> git.ipfire.org Git - thirdparty/gcc.git/commit
gccrs: Add type resolution and trait solving pass
authorPhilip Herron <philip.herron@embecosm.com>
Fri, 21 Oct 2022 11:53:14 +0000 (13:53 +0200)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 13 Dec 2022 13:00:06 +0000 (14:00 +0100)
commitc6c3db21769e8455f38e0d6ce004c44521aad7bd
treefc41d0fe02aec8ad82d3ce6b62c3962e77d93972
parent9ce37e720624accb7977ead5d0f25ac2b459c2aa
gccrs: Add type resolution and trait solving pass

This serves to handle parts of the Rust type-system. Namely, the type
resolution (similar to type-checking) and the trait solving algorithms
(which ensure Rust's type contracts are upheld throughout the codebase).

gcc/rust/
* typecheck/rust-hir-trait-resolve.cc: New.
* typecheck/rust-hir-trait-resolve.h: New.
* typecheck/rust-hir-type-check-base.cc: New.
* typecheck/rust-hir-type-check-base.h: New.
* typecheck/rust-hir-type-check-enumitem.cc: New.
* typecheck/rust-hir-type-check-enumitem.h: New.
* typecheck/rust-hir-type-check-expr.cc: New.
* typecheck/rust-hir-type-check-expr.h: New.
* typecheck/rust-hir-type-check-implitem.cc: New.
* typecheck/rust-hir-type-check-implitem.h: New.
* typecheck/rust-hir-type-check-item.cc: New.
* typecheck/rust-hir-type-check-item.h: New.
* typecheck/rust-hir-type-check-path.cc: New.
* typecheck/rust-hir-type-check-pattern.cc: New.
* typecheck/rust-hir-type-check-pattern.h: New.
* typecheck/rust-hir-type-check-stmt.cc: New.
* typecheck/rust-hir-type-check-stmt.h: New.
* typecheck/rust-hir-type-check-struct-field.h: New.
* typecheck/rust-hir-type-check-struct.cc: New.
* typecheck/rust-hir-type-check-toplevel.cc: New.
* typecheck/rust-hir-type-check-toplevel.h: New.
* typecheck/rust-hir-type-check-type.cc: New.
* typecheck/rust-hir-type-check-type.h: New.
* typecheck/rust-hir-type-check-util.cc: New.
* typecheck/rust-hir-type-check-util.h: New.
* typecheck/rust-hir-type-check.cc: New.
* typecheck/rust-hir-type-check.h: New.
* typecheck/rust-tyty-visitor.h: New.
28 files changed:
gcc/rust/typecheck/rust-hir-trait-resolve.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-trait-resolve.h [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-base.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-base.h [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-enumitem.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-enumitem.h [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-expr.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-expr.h [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-implitem.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-implitem.h [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-item.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-item.h [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-path.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-pattern.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-pattern.h [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-stmt.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-stmt.h [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-struct-field.h [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-struct.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-toplevel.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-toplevel.h [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-type.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-type.h [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-util.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check-util.h [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check.cc [new file with mode: 0644]
gcc/rust/typecheck/rust-hir-type-check.h [new file with mode: 0644]
gcc/rust/typecheck/rust-tyty-visitor.h [new file with mode: 0644]