From: Marc Poulhiès <[email protected]>
Hello,
This series contains changes mainly focused towards building libcore:
- support for rustc_legacy_const_generics
- support for recursive types
- support type bound predicates
- initial support for derive_coerce_pointee
- Drop -frust-c-style-string-literals, add -frust-compat-version
- fix lifetime handling in trait items
- more cleanup after nr1 retirement
- internal refactoring around the differents mappings the compiler maintains
- test core until typecheck
- infra work to make libraries upgrade easier
- many bug fixes
Commits have been regtested on x86_64-pc-linux-gnu.
Ok for master?
Marc
Arthur Cohen (5):
gccrs: nr2.0: Close out invalid resolution for unexported items
gccrs: parse: Remove unused gating_errors field and accessor
gccrs: core: Test until typecheck
gccrs: feature-gate: Default-visit extern types for completeness
gccrs: derive: Gate CoercePointee and add framework for implementing
it.
Owen Avery (4):
gccrs: nr1.0: Remove old Scope class
gccrs: Ignore bindings on bodyless functions
gccrs: Improve bodyless function pattern check
gccrs: Add script to generate rustc-lib
Philip Herron (17):
gccrs: Support silly legacy rustc const generics for stdarch
gccrs: Add test-case to show ice fixed
gccrs: Add testcase to show issue fixed
gccrs: Remove unnessecary diagnostics on array capacity values
gccrs: add null guard for failed builtin expansion
gccrs: Fix ICE in constexpr for unit-structs
gccrs: handle lifetimes properly on trait items
gccrs: Fix unconstrained when args are in the where clause
gccrs: Recursive types support
gccrs: Add testcase to show issue fixed
gccrs: Add testcase to show issue is fixed
gccrs: add ParamType::clone recusion guard
gccrs: Fix bad substituion error
gccrs: Add flag to unify of expect never
gccrs: Add type bound predicate scan
gccrs: Add missing lifetime handling to trait resolve
gccrs: fix unconstrained check to look for constrained bindings
Pierre-Emmanuel Patry (10):
gccrs: Separate crate related mappings within hir map
gccrs: Regroup proc macro related mappings
gccrs: Rename functions and members within mappings
gccrs: Add ASTMapping to regroup all AST items mappings
gccrs: Regroup hir mappings under one class
gccrs: Rename mapping categories
gccrs: Make hir mapping name plurals
gccrs: Move proc macro crate mapping to crate mappings
gccrs: Split proc macro invocation and definitions apart
gccrs: Rename variables
Utkarsh Bahuguna (2):
gccrs: Handle FUNCTION segments in new_type_param
gccrs: Diagnose const arithmetic overflow with E0080
Yap Zhi Heng (2):
gccrs: Remove -frust-c-style-string-literals flag
gccrs: Correct the naming of atomic store & load intrinsics
gcc/rust/Make-lang.in | 1 +
gcc/rust/ast/rust-ast-builder.cc | 7 +-
gcc/rust/ast/rust-collect-lang-items.cc | 6 +-
gcc/rust/backend/rust-compile-context.cc | 21 +-
gcc/rust/backend/rust-compile-context.h | 34 ++
gcc/rust/backend/rust-compile-expr.cc | 18 +-
gcc/rust/backend/rust-compile-intrinsic.cc | 4 +
gcc/rust/backend/rust-compile-item.cc | 2 +-
gcc/rust/backend/rust-compile-resolve-path.cc | 10 +-
gcc/rust/backend/rust-compile-type.cc | 148 ++++-
gcc/rust/backend/rust-constexpr.cc | 84 +++
gcc/rust/backend/rust-mangle-v0.cc | 6 +-
.../errors/borrowck/rust-borrow-checker.cc | 4 +-
.../checks/errors/feature/rust-feature-defs.h | 4 +
.../errors/feature/rust-feature-gate.cc | 2 +
.../errors/privacy/rust-privacy-reporter.cc | 2 +-
.../privacy/rust-pub-restricted-visitor.cc | 2 +-
.../privacy/rust-visibility-resolver.cc | 23 +-
gcc/rust/checks/errors/rust-ast-validation.cc | 49 +-
gcc/rust/checks/errors/rust-const-checker.cc | 2 +-
gcc/rust/checks/errors/rust-readonly-check.cc | 4 +-
gcc/rust/checks/errors/rust-unsafe-checker.cc | 8 +-
gcc/rust/checks/lints/rust-lint-marklive.cc | 4 +-
.../lints/unused/rust-unused-checker.cc | 2 +-
gcc/rust/expand/rust-derive-coerce-pointee.cc | 76 +++
gcc/rust/expand/rust-derive-coerce-pointee.h | 44 ++
gcc/rust/expand/rust-derive.cc | 3 +
gcc/rust/expand/rust-expand-visitor.cc | 13 +-
gcc/rust/expand/rust-macro-builtins.cc | 1 +
gcc/rust/expand/rust-macro-builtins.h | 1 +
gcc/rust/expand/rust-macro-expand.h | 6 +-
gcc/rust/expand/rust-macro-substitute-ctx.cc | 4 +-
gcc/rust/hir/rust-ast-lower-base.cc | 12 +-
gcc/rust/hir/rust-ast-lower-block.h | 14 +-
gcc/rust/hir/rust-ast-lower-enumitem.h | 12 +-
gcc/rust/hir/rust-ast-lower-expr.cc | 86 ++-
gcc/rust/hir/rust-ast-lower-extern.h | 8 +-
gcc/rust/hir/rust-ast-lower-implitem.cc | 26 +-
gcc/rust/hir/rust-ast-lower-item.cc | 58 +-
gcc/rust/hir/rust-ast-lower-pattern.cc | 28 +-
gcc/rust/hir/rust-ast-lower-stmt.cc | 8 +-
.../hir/rust-ast-lower-struct-field-expr.h | 2 +-
gcc/rust/hir/rust-ast-lower-type.cc | 52 +-
gcc/rust/hir/rust-ast-lower.cc | 36 +-
gcc/rust/hir/tree/rust-hir-expr.cc | 3 +-
gcc/rust/hir/tree/rust-hir-expr.h | 17 +
gcc/rust/hir/tree/rust-hir-item.cc | 72 +++
gcc/rust/hir/tree/rust-hir-item.h | 2 +
.../hir/tree/rust-hir-pattern-abstract.cc | 2 +-
gcc/rust/lang.opt | 4 -
gcc/rust/metadata/rust-export-metadata.cc | 13 +-
gcc/rust/parse/rust-parse-impl-expr.hxx | 8 +-
gcc/rust/parse/rust-parse.h | 8 +-
gcc/rust/resolve/rust-default-resolver.cc | 15 +-
.../resolve/rust-early-name-resolver-2.0.cc | 17 +-
gcc/rust/resolve/rust-forever-stack.h | 5 +-
.../resolve/rust-late-name-resolver-2.0.cc | 21 +-
.../resolve/rust-late-name-resolver-2.0.h | 3 +
.../resolve/rust-name-resolution-context.h | 7 +-
gcc/rust/resolve/rust-name-resolver.cc | 137 -----
gcc/rust/resolve/rust-name-resolver.h | 35 --
.../rust-toplevel-name-resolver-2.0.cc | 14 +-
gcc/rust/rust-gcc.cc | 2 +-
gcc/rust/rust-session-manager.cc | 39 +-
gcc/rust/rust-session-manager.h | 10 +
gcc/rust/typecheck/rust-coercion.cc | 23 +-
gcc/rust/typecheck/rust-coercion.h | 6 +-
gcc/rust/typecheck/rust-hir-dot-operator.cc | 18 +-
.../typecheck/rust-hir-path-probe-expr.cc | 2 +-
.../typecheck/rust-hir-path-probe-type.cc | 2 +-
gcc/rust/typecheck/rust-hir-trait-resolve.cc | 26 +-
.../typecheck/rust-hir-type-check-base.cc | 17 +-
.../typecheck/rust-hir-type-check-expr.cc | 9 +-
.../typecheck/rust-hir-type-check-implitem.cc | 4 +-
.../typecheck/rust-hir-type-check-item.cc | 330 +++++++----
.../typecheck/rust-hir-type-check-path.cc | 6 +-
.../typecheck/rust-hir-type-check-pattern.cc | 2 +-
.../typecheck/rust-hir-type-check-struct.cc | 2 +-
.../typecheck/rust-hir-type-check-type.cc | 22 +-
gcc/rust/typecheck/rust-hir-type-check.cc | 2 +-
gcc/rust/typecheck/rust-hir-type-check.h | 13 +
gcc/rust/typecheck/rust-type-util.cc | 68 ++-
gcc/rust/typecheck/rust-type-util.h | 3 +-
gcc/rust/typecheck/rust-typecheck-context.cc | 138 ++++-
gcc/rust/typecheck/rust-tyty-bounds.cc | 2 +-
gcc/rust/typecheck/rust-tyty-call.cc | 101 +++-
gcc/rust/typecheck/rust-tyty-subst.cc | 174 +++---
gcc/rust/typecheck/rust-tyty-subst.h | 3 +
gcc/rust/typecheck/rust-tyty-util.cc | 8 +-
gcc/rust/typecheck/rust-tyty.cc | 153 +++--
gcc/rust/typecheck/rust-tyty.h | 12 +-
gcc/rust/typecheck/rust-unify.cc | 56 +-
gcc/rust/typecheck/rust-unify.h | 51 +-
gcc/rust/util/rust-hir-map.cc | 549 ++----------------
gcc/rust/util/rust-hir-map.h | 280 +++++----
gcc/rust/util/rust-hir-map.hxx | 77 +++
gcc/rust/util/rust-intrinsic-values.h | 13 +
.../rust/compile/c_string_null_byte_check.rs | 2 +-
.../rust/compile/const_overflow_signed.rs | 21 +
.../rust/compile/const_overflow_unsigned.rs | 31 +
.../rust/compile/derive-coerce-pointee1.rs | 16 +
.../rust/compile/derive-coerce-pointee2.rs | 14 +
.../rust/compile/derive-coerce-pointee3.rs | 14 +
.../rust/compile/function-param-bodyless.rs | 35 ++
.../compile/generic-type-alias-subst-bug.rs | 20 +
gcc/testsuite/rust/compile/issues/2259.rs | 18 +
gcc/testsuite/rust/compile/issues/2477.rs | 1 -
gcc/testsuite/rust/compile/issues/3015.rs | 7 +
gcc/testsuite/rust/compile/issues/3903.rs | 17 +
gcc/testsuite/rust/compile/issues/3939.rs | 30 +
gcc/testsuite/rust/compile/issues/4165.rs | 3 +-
gcc/testsuite/rust/compile/issues/4168.rs | 1 -
gcc/testsuite/rust/compile/issues/4865-1.rs | 16 +
gcc/testsuite/rust/compile/issues/4865-2.rs | 20 +
gcc/testsuite/rust/compile/issues/4884.rs | 102 ++++
gcc/testsuite/rust/compile/issues/4911.rs | 29 +
gcc/testsuite/rust/compile/issues/4912.rs | 11 +
gcc/testsuite/rust/compile/issues/4918.rs | 33 ++
.../rust/compile/issues/issue-1178.rs | 8 +
.../rust/compile/issues/issue-2757.rs | 7 +
.../rust/compile/issues/issue-3868.rs | 15 +
.../rust/compile/issues/issue-4152.rs | 36 ++
.../rust/compile/issues/issue-4153.rs | 15 +
.../rust/compile/issues/issue-4668.rs | 18 +
.../rust/compile/issues/issue-4675.rs | 19 +
.../rust/compile/issues/issue-4709.rs | 8 +
.../rust/compile/issues/issue-4883.rs | 46 ++
.../rust/compile/issues/issue-4885.rs | 43 ++
.../rust/compile/multiple_bindings3.rs | 10 +
.../rust/compile/projection-bound-decl-id.rs | 14 +
.../rust/compile/recursive-types-infinite.rs | 14 +
.../rust/compile/recursive-types-mismatch.rs | 20 +
.../rust/compile/recusive-types-1.rs | 23 +
.../rust/compile/recusive-types-2.rs | 16 +
.../rust/compile/recusive-types-3.rs | 12 +
.../rust/compile/recusive-types-4.rs | 16 +
.../rust/compile/recusive-types-5.rs | 17 +
.../rust/compile/recusive-types-6.rs | 26 +
.../rust/compile/recusive-types-7.rs | 10 +
gcc/testsuite/rust/compile/torture/arrays5.rs | 1 +
gcc/testsuite/rust/compile/torture/arrays6.rs | 1 +
gcc/testsuite/rust/core/core.exp | 6 +-
.../rust/execute/recursive-types-fnptr.rs | 14 +
.../rust/execute/torture/c_string.rs | 2 +-
.../torture/c_string_ensure_null_term.rs | 2 +-
libgrust/contrib/vendor-libs.sh | 75 +++
libgrust/rustc-lib/version-info | 1 +
147 files changed, 3020 insertions(+), 1459 deletions(-)
create mode 100644 gcc/rust/expand/rust-derive-coerce-pointee.cc
create mode 100644 gcc/rust/expand/rust-derive-coerce-pointee.h
create mode 100644 gcc/rust/util/rust-hir-map.hxx
create mode 100644 gcc/testsuite/rust/compile/const_overflow_signed.rs
create mode 100644 gcc/testsuite/rust/compile/const_overflow_unsigned.rs
create mode 100644 gcc/testsuite/rust/compile/derive-coerce-pointee1.rs
create mode 100644 gcc/testsuite/rust/compile/derive-coerce-pointee2.rs
create mode 100644 gcc/testsuite/rust/compile/derive-coerce-pointee3.rs
create mode 100644 gcc/testsuite/rust/compile/function-param-bodyless.rs
create mode 100644 gcc/testsuite/rust/compile/generic-type-alias-subst-bug.rs
create mode 100644 gcc/testsuite/rust/compile/issues/2259.rs
create mode 100644 gcc/testsuite/rust/compile/issues/3015.rs
create mode 100644 gcc/testsuite/rust/compile/issues/3903.rs
create mode 100644 gcc/testsuite/rust/compile/issues/3939.rs
create mode 100644 gcc/testsuite/rust/compile/issues/4865-1.rs
create mode 100644 gcc/testsuite/rust/compile/issues/4865-2.rs
create mode 100644 gcc/testsuite/rust/compile/issues/4884.rs
create mode 100644 gcc/testsuite/rust/compile/issues/4911.rs
create mode 100644 gcc/testsuite/rust/compile/issues/4912.rs
create mode 100644 gcc/testsuite/rust/compile/issues/4918.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-1178.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-2757.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-3868.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-4152.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-4153.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-4668.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-4675.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-4709.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-4883.rs
create mode 100644 gcc/testsuite/rust/compile/issues/issue-4885.rs
create mode 100644 gcc/testsuite/rust/compile/multiple_bindings3.rs
create mode 100644 gcc/testsuite/rust/compile/projection-bound-decl-id.rs
create mode 100644 gcc/testsuite/rust/compile/recursive-types-infinite.rs
create mode 100644 gcc/testsuite/rust/compile/recursive-types-mismatch.rs
create mode 100644 gcc/testsuite/rust/compile/recusive-types-1.rs
create mode 100644 gcc/testsuite/rust/compile/recusive-types-2.rs
create mode 100644 gcc/testsuite/rust/compile/recusive-types-3.rs
create mode 100644 gcc/testsuite/rust/compile/recusive-types-4.rs
create mode 100644 gcc/testsuite/rust/compile/recusive-types-5.rs
create mode 100644 gcc/testsuite/rust/compile/recusive-types-6.rs
create mode 100644 gcc/testsuite/rust/compile/recusive-types-7.rs
create mode 100644 gcc/testsuite/rust/execute/recursive-types-fnptr.rs
create mode 100755 libgrust/contrib/vendor-libs.sh
--
2.55.0