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

Reply via email to