This is an automated email from the git hooks/post-receive script.
unknown user pushed a change to branch master in repository gcc.
from c532c201b36 gccrs: ast: Add Kind::MODULE new ebbb3d2d5f7 gccrs: ast: Add take_items() and set_items() methods for It [...] new 12dd77c19fb gccrs: enr: Accumulate nested escaped macros properly. new 24c86440527 gccrs: ast: Format AST code properly. new de9c1ff6d59 gccrs: Add missing compile locals for constants and statics new af874e4bcd6 gccrs: Fix "default unsafe fn ..." parsing new c6f1b887e8f gccrs: Fix ICE in check for unused global variables new cf046027a23 gccrs: Redo how we handle unit types for the final time new e857a3b6790 gccrs: we can only return unit-type when the ABI is non C new c9600aa54d7 gccrs: unify how we handle DST's new f91d7d39067 gccrs: add missing coercion site code generation for block tail new b90dc2bdd23 gccrs: Add missing coercion site logic to return expressions new 0a000680608 gccrs: Added HIR::InlineAsm node new 5c8941ffd60 gccrs: tokenstream: Convert group markers new c010c77c479 gccrs: tokenstream: Convert single punctuation tokens new c1b343da33f gccrs: tokenstream: Add joint punct token conversion new 8c465d5fb09 gccrs: tokenstream: Add tokens to Ident conversion new e9ced4a3a58 gccrs: tokenstream: Add string and byte string literals new a21a4bc8947 gccrs: tokenstream: Add literal int draft conversion new eb95910feee gccrs: tokenstream: Add conversion for float literals new 71249c646b7 gccrs: ast: Rename TokenStream in the AST module new 82387cd8a0e gccrs: ast: Rename rust-ast-tokenstream file new a56f04dec3e gccrs: ast: Rename header guard new ec5f8090a17 gccrs: ast: Move token converter out of ast module new 8adfcf71216 gccrs: converter: Remove redundant variable new 97612931b13 gccrs: converter: Add TokenStream conversion function new c3462989ec4 gccrs: converter: Add group conversion implementation new ab0e27412e3 gccrs: converter: Add from_tokentree function new 2099a757e22 gccrs: converter: Return a vector to const pointers new 95103ba9cda gccrs: converter: Const conversion to tokenstream new 449d3f5793d gccrs: converter: Add punct conversion function new 1346d20dd55 gccrs: converter: Convert literals back to tokens new 3480ea7a053 gccrs: converter: Add Ident conversions new d0661bf8c9d gccrs: converter: Make converter input immutable new e7d105546b7 gccrs: converter: Fix some styling issues new 7673702396d gccrs: converter: Fix suffix condition new 8769b4900fd gccrs: Address invalid little-endian-only testcases new 2aeff9ce085 gccrs: Handle keywords in macro fragments new 9e9ee593cf0 gccrs: ast: Remove ExprStmtWithBlock / ExprStmtWithoutBlock [...] new 48408712cc8 gccrs: Fix parsing of block expressions followed by `.` new 7c317571911 gccrs: Change return type of token_id_keyword_string new ec43b2ee8f4 gccrs: dump: Dump `TupleIndexExpr`s new 122f519ceb1 gccrs: Improve Optional<T&> implementation new 3bbc4ca198c gccrs: Allow hashing Optional<T> new 215925bccc7 gccrs: Make MacroInvocation cloning public new 842a8307ca3 gccrs: Add AST::AttrInputMacro new 5605333c907 gccrs: libproc_macro: Change rust literal internals new 10c9b9f0ccc gccrs: libproc_macro: Change cpp literal representation new f730dff1738 gccrs: converter: Merge dispatch into one function new 4689998556b gccrs: libproc_macro: Remove has_suffix attribute new 9fc94c1562d gccrs: libproc_macro: Copy ffistring data from source new 90effeedc48 gccrs: libproc_macro: Change constructor in ffistring new f5d02c4f559 gccrs: ast: Add `outer_attrs` to all `Item`s new dfd2e26bda1 gccrs: Handle keyword metavariables new 4a71a18da8a gccrs: Improve Optional<T> implementation new de8eed9b8ef gccrs: ast: Propagate type suffix new efc6c1aa3c8 gccrs: Parse AttrInputMacro new 014dd0304d9 gccrs: Add operator== for Optional. new 7e96bfe4286 gccrs: Only check first item of cfg_attr attribute as predicate new 1af4d0e6078 gccrs: Fix macro resolutions in middle of multiple nested m [...] new 917914509f4 gccrs: enr: Cleanup #[macro_use] accumulation new b8934ebd88b gccrs: hir: remove stray semicolon new 636e9b41035 gccrs: refactor resolve_method_address to be more generic new 6ed987d5bc6 gccrs: support deref cycles to resolve to trait items new 74db136a7cf gccrs: Fix bounds checking to check both sides new 253c7343bbb gccrs: Fix handling of single fragments in repetitions new 57c5d234792 gccrs: Avoid invalid metavariable substitutions new 14da235ef4b gccrs: Add missing HIR lowering to item statements new e07cb0b07d5 gccrs: remove useless lookup to NodeId new 422244101ee gccrs: Fix missing pop of name scope at the end of Trait Impl new 546fbc6289b gccrs: remove unused header new 56e29f4d5de gccrs: Add missing name resolution to item statements new 1b34e40e5e4 gccrs: Fix cast site to not miss type-unifications new fc281773251 gccrs: Make key and key/value config options seperate new 10d501fa9b7 gccrs: expand: Add missing copyright headers new 7d9b2a8607f gccrs: ast: Add AstBuilder class. new 0096df08e0d gccrs: expansion: Add base for deriving builtin macros (Clo [...] new d3d751cbac0 gccrs: get rid of useless helper class and fix header usage new 007248a2c48 gccrs: Properly match delimiters new e4b769cb0a1 gccrs: libproc_macro: Add Span definition new 4d950fa5dfc gccrs: libproc_macro: Add cpp Span representation new c37722cc9d5 gccrs: converter: Add conversion from locations to spans new 3ee9c01098a gccrs: converter: Convert back Locations from spans new b6717943336 gccrs: converter: Refactor locations new 525e987ae8d gccrs: derive: Add #[derive(Clone)] for regular structs new e16397e9963 gccrs: derive: Add #[derive(Copy)] builtin new c566f908106 gccrs: derive: Add proper derive(Clone) for unions new 446c1920145 gccrs: derive: Add dummy builtin transcriber for builtin de [...] new d4ac20b6b42 gccrs: ast: dump literals correctly new b436709f4b1 gccrs: Allow parsing a borrow from struct expression new b14efcea1f4 gccrs: Handle crate metavariable new 18ba67df507 gccrs: Prevent initialization related warnings/errors for Optional new e64a12f903b gccrs: Respect the concrete type when resolving qualifed pa [...] new e50a99a1aa3 gccrs: Add error message when derive macro is invoked new e6d40678dd1 gccrs: Fix non-mod-rs files' external module loading paths new 0af8582fc71 gccrs: collector: Move implementation to header new 432120dc19a gccrs: attributes: Add allow_internal_unstable attribute new 4ca2f203004 gccrs: libproc_macro: Add procmacro array definition new 1f4660d5dba gccrs: expand: Add procmacro loading function new f8880772495 gccrs: libproc_macro: Rename Procmacro subtypes new 5c20c980f74 gccrs: collector: Make visitors public new 22ba7ea9eec gccrs: libproc_macro: Fix capacity update in tokenstream new cf58150bea8 gccrs: libproc_macro: Fix Tokenstream growth new 00ec3eda2a5 gccrs: ast: Fix attribute collection new 663c4102a8a gccrs: expand: Add prc macro expander and registration new 4ac11844507 gccrs: expand: Add derive proc macro draft new f1afcf9fd5e gccrs: expand: Move derive system to new one new c7805016c87 gccrs: expand: Remove proc macro fragment from expander new 7d59ce850c1 gccrs: expand: Add in order trait expansion new 6925358a440 gccrs: expand: Expand item level attribute proc macros new da450d345c9 gccrs: expand: Allow empty derive attribute new d41160ca974 gccrs: expand: Make to_derive argument const new a77f3c3b365 gccrs: introduce new types_compatable new 61e8ba9015a gccrs: Remove obsolete error diagnostic new e22e94ddb62 gccrs: Fix ICE for reference patterns in match statements new 73a2f1b4d64 gccrs: ensure assoicated types are setup for concrete trait [...] new 00539210bfa gccrs: derive: Factor common fields inside the base visitor new 77cd54e9dc3 gccrs: fortify resolve_method_address to match the types new b67124f2592 gccrs: fixup: Remove old typecheck dump new 0f15c111397 gccrs: we can't check the bounds involving empty placeholder types new 99894a81392 gccrs: Remove direct error on macro rule count-related matc [...] new 45c01fae2a2 gccrs: Prevent invalid iterator dereference new 61644aea34c gccrs: tokenize Unicode identifiers new e302a55c6a7 gccrs: Print macro invocations in AST dump new 3d0684b2c24 gccrs: Handle tail expression normalization right before lo [...] new 8bc4ce7c40b gccrs: Parse semicolons in more cases for statement macros new 946af759bdc gccrs: fix unsafe lookup at zero index new 4476c9a8e38 gccrs: add new method to infer impl block type new 5189a22a14c gccrs: Fix generic argument tracking new 97bc533c525 gccrs: Apply generic arguments to the respective trait bounds new a7d480eef4e gccrs: ErrorCode[E0433] Use of Undeclared Crate, Module, or Type new f1dbdb63dc7 gccrs: Make MatchedFragmentContainer a tree-like structure new 9035128b75b gccrs: expand: Derive statements new 0974798a3f5 gccrs: expand: Add tail expr expansion new 128c042dcf3 gccrs: expand: Convert last statement to tail expr new 13557769abc gccrs: expand: Merge arguments into one new 1891acf2bdd gccrs: expand: Change names and document behavior new 182db4ad089 gccrs: Expand expressions/types correctly in more contexts. new 858e3af945e gccrs: ErrorCode[E0277] Type Does Not Implement Expected Trait new 5cfff8be03a gccrs: Add method selection to operator overloading new b3b3de1082e gccrs: Stop autoderef of raw pointer types new 3381f522f20 rust: Add -frust-name-resolution-2.0 option new 497632d136c gccrs: Match tokens in macros more closely new 69a64dcb20e gccrs: gccrs:[E0026] Non-Existent Field Extraction in Struc [...] new 162aecc7b69 gccrs: [E0023] Incorrect Number of Fields in Pattern Extraction new 0770c239f47 gccrs: Insert empty repeated metavars for nested repetitions new 0ee16a42074 gccrs: Refactor lexer to handle UTF-8 new fcb228d1232 gccrs: ast: Change Identifier definition new 5373b8e66cc gccrs: ast: Add explicit default copy constructor new 84a14f3d88f gccrs: fix tokenizing utf-8 whitespaces new 83e9ae73f47 gccrs: Add tests for Unicode identifiers new a2bb3446246 gccrs: dump: Remove tokenstream dump new b6a783c4815 gccrs: collector: Fix missing semicolon output new ddc51b22bd8 gccrs: dump: Replace ast dump internals new 766b6fc0c7d gccrs: dump: Output separating space under condition new cb791a1f72c gccrs: collector: Remove external container new 2bf0087065b gccrs: collector: Store CollectItem instead of TokenPtr new 1d28a62a0d7 gccrs: collector: Implement formatting options new 671517fc2e2 gccrs: dump: Add formatting to dump new df7f3413385 gccrs: Track associated type generics
The 159 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference.
Summary of changes: gcc/rust/Make-lang.in | 11 +- gcc/rust/ast/rust-ast-builder.cc | 152 + gcc/rust/ast/rust-ast-builder.h | 116 + gcc/rust/ast/rust-ast-collector.cc | 2915 ++++++++++++++++++++ ...rust-ast-tokenstream.h => rust-ast-collector.h} | 99 +- gcc/rust/ast/rust-ast-dump.cc | 1900 +------------ gcc/rust/ast/rust-ast-dump.h | 287 +- gcc/rust/ast/rust-ast-full-decls.h | 11 +- gcc/rust/ast/rust-ast-tokenstream.cc | 2889 ------------------- gcc/rust/ast/rust-ast-visitor.h | 4 +- gcc/rust/ast/rust-ast.cc | 223 +- gcc/rust/ast/rust-ast.h | 209 +- gcc/rust/ast/rust-expr.h | 278 +- gcc/rust/ast/rust-item.h | 41 +- gcc/rust/ast/rust-macro.h | 41 +- gcc/rust/ast/rust-path.cc | 6 +- gcc/rust/ast/rust-path.h | 13 +- gcc/rust/ast/rust-pattern.cc | 6 +- gcc/rust/ast/rust-stmt.h | 143 +- gcc/rust/ast/rust-type.h | 2 +- gcc/rust/backend/rust-compile-base.cc | 210 +- gcc/rust/backend/rust-compile-base.h | 39 +- gcc/rust/backend/rust-compile-block.cc | 41 +- gcc/rust/backend/rust-compile-block.h | 1 + gcc/rust/backend/rust-compile-context.h | 5 +- gcc/rust/backend/rust-compile-expr.cc | 256 +- gcc/rust/backend/rust-compile-expr.h | 1 + gcc/rust/backend/rust-compile-extern.h | 6 +- gcc/rust/backend/rust-compile-fnparam.cc | 6 +- gcc/rust/backend/rust-compile-fnparam.h | 1 + gcc/rust/backend/rust-compile-implitem.cc | 11 +- gcc/rust/backend/rust-compile-item.cc | 27 +- gcc/rust/backend/rust-compile-item.h | 1 + gcc/rust/backend/rust-compile-pattern.cc | 10 +- gcc/rust/backend/rust-compile-pattern.h | 1 + gcc/rust/backend/rust-compile-resolve-path.cc | 9 +- gcc/rust/backend/rust-compile-resolve-path.h | 1 + gcc/rust/backend/rust-compile-stmt.h | 1 + gcc/rust/backend/rust-compile-struct-field-expr.cc | 2 +- gcc/rust/backend/rust-compile-type.cc | 81 +- gcc/rust/backend/rust-compile-type.h | 3 + gcc/rust/backend/rust-compile-var-decl.h | 7 +- gcc/rust/backend/rust-compile.cc | 17 +- gcc/rust/backend/rust-constexpr.cc | 1 - gcc/rust/backend/rust-tree.h | 4 +- gcc/rust/checks/errors/rust-feature-gate.h | 4 +- gcc/rust/checks/errors/rust-unsafe-checker.cc | 2 +- gcc/rust/checks/lints/rust-lint-marklive.cc | 5 +- gcc/rust/checks/lints/rust-lint-scan-deadcode.h | 22 +- gcc/rust/checks/lints/rust-lint-unused-var.cc | 6 +- gcc/rust/expand/rust-cfg-strip.cc | 25 +- gcc/rust/expand/rust-cfg-strip.h | 4 +- gcc/rust/expand/rust-derive-clone.cc | 187 ++ gcc/rust/expand/rust-derive-clone.h | 74 + gcc/rust/expand/rust-derive-copy.cc | 79 + .../rust-derive-copy.h} | 59 +- gcc/rust/expand/rust-derive.cc | 54 + gcc/rust/expand/rust-derive.h | 229 ++ gcc/rust/expand/rust-expand-visitor.cc | 599 ++-- gcc/rust/expand/rust-expand-visitor.h | 70 +- gcc/rust/expand/rust-macro-builtins.cc | 50 +- gcc/rust/expand/rust-macro-builtins.h | 15 + gcc/rust/expand/rust-macro-expand.cc | 304 +- gcc/rust/expand/rust-macro-expand.h | 242 +- gcc/rust/expand/rust-macro-invoc-lexer.cc | 18 + gcc/rust/expand/rust-macro-substitute-ctx.cc | 154 +- gcc/rust/expand/rust-macro-substitute-ctx.h | 13 +- gcc/rust/expand/rust-proc-macro-invoc-lexer.cc | 57 + ...invoc-lexer.h => rust-proc-macro-invoc-lexer.h} | 19 +- gcc/rust/expand/rust-proc-macro.cc | 64 + .../rust-base62.h => expand/rust-proc-macro.h} | 19 +- gcc/rust/hir/rust-ast-lower-base.cc | 14 +- gcc/rust/hir/rust-ast-lower-base.h | 4 +- gcc/rust/hir/rust-ast-lower-block.h | 1 + gcc/rust/hir/rust-ast-lower-expr.cc | 2 +- gcc/rust/hir/rust-ast-lower-stmt.cc | 310 +-- gcc/rust/hir/rust-ast-lower-stmt.h | 6 +- gcc/rust/hir/rust-ast-lower-type.cc | 2 +- gcc/rust/hir/rust-hir-dump.cc | 4 +- gcc/rust/hir/tree/rust-hir-expr.h | 90 +- gcc/rust/hir/tree/rust-hir-full-decls.h | 4 + gcc/rust/hir/tree/rust-hir-item.h | 27 +- gcc/rust/hir/tree/rust-hir-path.h | 2 +- gcc/rust/hir/tree/rust-hir-type.h | 2 +- gcc/rust/hir/tree/rust-hir.cc | 55 +- gcc/rust/hir/tree/rust-hir.h | 12 - gcc/rust/lang.opt | 4 + gcc/rust/lex/rust-lex.cc | 611 ++-- gcc/rust/lex/rust-lex.h | 226 +- gcc/rust/lex/rust-token.cc | 40 + gcc/rust/lex/rust-token.h | 21 + gcc/rust/parse/rust-parse-impl.h | 1505 ++++------ gcc/rust/parse/rust-parse.h | 60 +- gcc/rust/resolve/rust-ast-resolve-base.cc | 10 +- gcc/rust/resolve/rust-ast-resolve-base.h | 4 +- gcc/rust/resolve/rust-ast-resolve-implitem.h | 34 +- gcc/rust/resolve/rust-ast-resolve-item.cc | 99 +- gcc/rust/resolve/rust-ast-resolve-path.cc | 6 +- gcc/rust/resolve/rust-ast-resolve-pattern.cc | 17 +- gcc/rust/resolve/rust-ast-resolve-stmt.cc | 22 + gcc/rust/resolve/rust-ast-resolve-stmt.h | 47 +- gcc/rust/resolve/rust-ast-resolve-toplevel.h | 58 +- gcc/rust/resolve/rust-ast-resolve-type.cc | 4 +- gcc/rust/resolve/rust-ast-resolve-type.h | 5 +- gcc/rust/resolve/rust-early-name-resolver.cc | 139 +- gcc/rust/resolve/rust-early-name-resolver.h | 16 +- gcc/rust/rust-backend.h | 11 +- gcc/rust/rust-gcc.cc | 116 +- gcc/rust/rust-lang.cc | 2 + gcc/rust/rust-session-manager.cc | 65 +- gcc/rust/rust-session-manager.h | 61 +- gcc/rust/typecheck/rust-autoderef.cc | 121 +- gcc/rust/typecheck/rust-autoderef.h | 15 +- gcc/rust/typecheck/rust-casts.cc | 9 +- gcc/rust/typecheck/rust-hir-dot-operator.cc | 228 +- gcc/rust/typecheck/rust-hir-dot-operator.h | 4 + gcc/rust/typecheck/rust-hir-path-probe.cc | 8 +- gcc/rust/typecheck/rust-hir-path-probe.h | 4 +- gcc/rust/typecheck/rust-hir-trait-reference.cc | 4 +- gcc/rust/typecheck/rust-hir-trait-reference.h | 6 +- gcc/rust/typecheck/rust-hir-trait-resolve.cc | 144 +- gcc/rust/typecheck/rust-hir-trait-resolve.h | 1 + gcc/rust/typecheck/rust-hir-type-check-enumitem.cc | 13 +- gcc/rust/typecheck/rust-hir-type-check-expr.cc | 51 +- gcc/rust/typecheck/rust-hir-type-check-expr.h | 1 + gcc/rust/typecheck/rust-hir-type-check-implitem.cc | 66 +- gcc/rust/typecheck/rust-hir-type-check-implitem.h | 1 + gcc/rust/typecheck/rust-hir-type-check-item.cc | 108 +- gcc/rust/typecheck/rust-hir-type-check-item.h | 5 + gcc/rust/typecheck/rust-hir-type-check-path.cc | 44 +- gcc/rust/typecheck/rust-hir-type-check-pattern.cc | 22 +- gcc/rust/typecheck/rust-hir-type-check-pattern.h | 1 + gcc/rust/typecheck/rust-hir-type-check-stmt.h | 1 + gcc/rust/typecheck/rust-hir-type-check-struct.cc | 17 +- gcc/rust/typecheck/rust-hir-type-check-type.cc | 108 +- gcc/rust/typecheck/rust-hir-type-check-type.h | 1 + gcc/rust/typecheck/rust-hir-type-check-util.cc | 41 - gcc/rust/typecheck/rust-hir-type-check-util.h | 50 - gcc/rust/typecheck/rust-hir-type-check.cc | 12 +- gcc/rust/typecheck/rust-tycheck-dump.h | 234 -- gcc/rust/typecheck/rust-type-util.cc | 28 + gcc/rust/typecheck/rust-type-util.h | 8 + gcc/rust/typecheck/rust-tyty-bounds.cc | 7 +- gcc/rust/typecheck/rust-tyty-subst.cc | 35 +- gcc/rust/typecheck/rust-tyty-subst.h | 3 + gcc/rust/typecheck/rust-tyty.cc | 71 +- gcc/rust/typecheck/rust-tyty.h | 65 +- gcc/rust/typecheck/rust-unify.cc | 44 +- gcc/rust/util/rust-attributes.cc | 15 +- gcc/rust/util/rust-attributes.h | 4 +- .../util/{rust-make-unique.h => rust-dir-owner.cc} | 25 +- gcc/rust/util/{rust-abi.h => rust-dir-owner.h} | 31 +- gcc/rust/util/rust-hir-map.cc | 85 +- gcc/rust/util/rust-hir-map.h | 29 +- gcc/rust/util/rust-optional.h | 165 +- gcc/rust/util/rust-token-converter.cc | 446 +++ .../{rust-make-unique.h => rust-token-converter.h} | 23 +- gcc/testsuite/rust/compile/braced_macro_arm.rs | 19 + .../rust/compile/braced_macro_statements1.rs | 15 + .../rust/compile/braced_macro_statements2.rs | 15 + .../rust/compile/braced_macro_statements3.rs | 11 + gcc/testsuite/rust/compile/break1.rs | 1 - gcc/testsuite/rust/compile/break2.rs | 1 - gcc/testsuite/rust/compile/cfg-attr.rs | 7 + gcc/testsuite/rust/compile/cfg2.rs | 1 - gcc/testsuite/rust/compile/cfg6.rs | 4 + gcc/testsuite/rust/compile/const-issue1440.rs | 1 - gcc/testsuite/rust/compile/continue1.rs | 1 - gcc/testsuite/rust/compile/derive_empty.rs | 6 + gcc/testsuite/rust/compile/derive_macro1.rs | 12 + gcc/testsuite/rust/compile/derive_macro3.rs | 21 + gcc/testsuite/rust/compile/derive_macro4.rs | 16 + gcc/testsuite/rust/compile/derive_macro6.rs | 21 + gcc/testsuite/rust/compile/derive_macro7.rs | 8 + gcc/testsuite/rust/compile/derive_macro8.rs | 9 + gcc/testsuite/rust/compile/doc_macro.rs | 1 + gcc/testsuite/rust/compile/for_expr.rs | 6 + gcc/testsuite/rust/compile/generics4.rs | 6 +- gcc/testsuite/rust/compile/generics6.rs | 4 +- gcc/testsuite/rust/compile/generics7.rs | 1 - .../rust/compile/{ => issue-1089}/test_mod.rs | 0 gcc/testsuite/rust/compile/issue-1813.rs | 9 + gcc/testsuite/rust/compile/issue-1893.rs | 3 - gcc/testsuite/rust/compile/issue-2019-1.rs | 22 + gcc/testsuite/rust/compile/issue-2019-2.rs | 30 + ..._macro_qual_path_in_type.rs => issue-2019-3.rs} | 5 +- gcc/testsuite/rust/compile/issue-2029.rs | 1 - gcc/testsuite/rust/compile/issue-2036.rs | 36 + gcc/testsuite/rust/compile/issue-2139.rs | 1 - gcc/testsuite/rust/compile/issue-2165.rs | 9 + gcc/testsuite/rust/compile/issue-2166.rs | 23 + gcc/testsuite/rust/compile/issue-2178.rs | 10 + gcc/testsuite/rust/compile/issue-2188.rs | 1 + gcc/testsuite/rust/compile/issue-2189.rs | 5 + gcc/testsuite/rust/compile/issue-2190-1.rs | 10 + gcc/testsuite/rust/compile/issue-2190-2.rs | 20 + gcc/testsuite/rust/compile/issue-2195.rs | 8 + gcc/testsuite/rust/compile/issue-2207.rs | 12 + gcc/testsuite/rust/compile/issue-2225.rs | 14 + gcc/testsuite/rust/compile/issue-2238.rs | 15 + gcc/testsuite/rust/compile/issue-2304.rs | 23 + gcc/testsuite/rust/compile/issue-407-2.rs | 27 +- gcc/testsuite/rust/compile/issue-407.rs | 7 +- gcc/testsuite/rust/compile/issue-867.rs | 2 +- gcc/testsuite/rust/compile/issue-925.rs | 1 - gcc/testsuite/rust/compile/macro-delim.rs | 8 + gcc/testsuite/rust/compile/macro-issue2192.rs | 7 + gcc/testsuite/rust/compile/macro-issue2194.rs | 7 + gcc/testsuite/rust/compile/macro-issue2229.rs | 6 + gcc/testsuite/rust/compile/macro-issue2264.rs | 12 + gcc/testsuite/rust/compile/macro-issue2268.rs | 5 + gcc/testsuite/rust/compile/macro43.rs | 3 +- gcc/testsuite/rust/compile/macro53.rs | 10 + gcc/testsuite/rust/compile/macro54.rs | 38 + gcc/testsuite/rust/compile/macro55.rs | 10 + gcc/testsuite/rust/compile/macro6.rs | 2 +- gcc/testsuite/rust/compile/macro7.rs | 2 +- gcc/testsuite/rust/compile/macro_call_statement.rs | 11 + gcc/testsuite/rust/compile/macro_use1.rs | 15 + gcc/testsuite/rust/compile/method1.rs | 1 - gcc/testsuite/rust/compile/mod_missing_middle.rs | 6 +- .../missing_middle/both_path.rs | 0 .../missing_middle/explicit.not.rs | 0 .../missing_middle/explicit.not}/other.rs | 0 .../missing_middle/inner_path.rs | 0 .../missing_middle/outer_path.rs | 0 .../missing_middle/sub/mod.rs | 0 gcc/testsuite/rust/compile/nested_macro_use1.rs | 19 + gcc/testsuite/rust/compile/nested_macro_use2.rs | 12 + gcc/testsuite/rust/compile/nested_macro_use3.rs | 16 + gcc/testsuite/rust/compile/parse_specialization.rs | 2 + gcc/testsuite/rust/compile/shadow1.rs | 1 - gcc/testsuite/rust/compile/stmt_with_block_dot.rs | 20 + gcc/testsuite/rust/compile/struct-expr-parse.rs | 7 + .../torture/{ => extern_mod1}/modules/mod.rs | 0 gcc/testsuite/rust/compile/torture/issue-1432.rs | 1 - .../rust/compile/torture/{loop4.rs => loop8.rs} | 4 +- .../rust/compile/torture/raw_identifiers.rs | 8 + .../rust/compile/torture/utf8_identifiers.rs | 18 + .../rust/compile/torture/utf8_whitespaces.rs | 16 + gcc/testsuite/rust/compile/traits2.rs | 2 +- gcc/testsuite/rust/compile/traits3.rs | 4 +- gcc/testsuite/rust/compile/type-bindings1.rs | 4 +- gcc/testsuite/rust/compile/unary_negation.rs | 1 - gcc/testsuite/rust/compile/unary_not.rs | 1 - .../rust/compile/unconstrained_type_param.rs | 1 - gcc/testsuite/rust/compile/usize1.rs | 1 - gcc/testsuite/rust/execute/torture/coercion3.rs | 35 + .../rust/execute/torture/derive_macro1.rs | 23 + .../rust/execute/torture/derive_macro3.rs | 19 + .../rust/execute/torture/derive_macro4.rs | 29 + .../torture/{ => extern_mod4}/modules/mod.rs | 0 gcc/testsuite/rust/execute/torture/issue-2179.rs | 29 + gcc/testsuite/rust/execute/torture/issue-2180.rs | 34 + gcc/testsuite/rust/execute/torture/issue-2236.rs | 37 + gcc/testsuite/rust/execute/torture/macro_use1.rs | 18 + libgrust/libproc_macro/Makefile.am | 10 +- libgrust/libproc_macro/Makefile.in | 10 +- .../libproc_macro/{tokentree.cc => ffistring.cc} | 63 +- libgrust/libproc_macro/{punct.h => ffistring.h} | 34 +- libgrust/libproc_macro/group.cc | 4 +- libgrust/libproc_macro/group.h | 5 +- libgrust/libproc_macro/ident.cc | 21 +- libgrust/libproc_macro/ident.h | 11 +- libgrust/libproc_macro/literal.cc | 281 +- libgrust/libproc_macro/literal.h | 187 +- libgrust/libproc_macro/proc_macro.h | 18 +- libgrust/libproc_macro/punct.cc | 4 +- libgrust/libproc_macro/punct.h | 5 +- libgrust/libproc_macro/rust/bridge.rs | 1 + libgrust/libproc_macro/rust/bridge/ffistring.rs | 51 + libgrust/libproc_macro/rust/bridge/group.rs | 9 +- libgrust/libproc_macro/rust/bridge/ident.rs | 17 +- libgrust/libproc_macro/rust/bridge/literal.rs | 484 ++-- libgrust/libproc_macro/rust/bridge/punct.rs | 4 +- libgrust/libproc_macro/rust/bridge/span.rs | 20 +- libgrust/libproc_macro/{group.cc => span.cc} | 15 +- libgrust/libproc_macro/{punct.h => span.h} | 24 +- libgrust/libproc_macro/tokenstream.cc | 9 +- 279 files changed, 10613 insertions(+), 10244 deletions(-) create mode 100644 gcc/rust/ast/rust-ast-builder.cc create mode 100644 gcc/rust/ast/rust-ast-builder.h create mode 100644 gcc/rust/ast/rust-ast-collector.cc rename gcc/rust/ast/{rust-ast-tokenstream.h => rust-ast-collector.h} (87%) delete mode 100644 gcc/rust/ast/rust-ast-tokenstream.cc create mode 100644 gcc/rust/expand/rust-derive-clone.cc create mode 100644 gcc/rust/expand/rust-derive-clone.h create mode 100644 gcc/rust/expand/rust-derive-copy.cc copy gcc/rust/{ast/rust-ast-formatting.h => expand/rust-derive-copy.h} (53%) create mode 100644 gcc/rust/expand/rust-derive.cc create mode 100644 gcc/rust/expand/rust-derive.h create mode 100644 gcc/rust/expand/rust-proc-macro-invoc-lexer.cc copy gcc/rust/expand/{rust-macro-invoc-lexer.h => rust-proc-macro-invoc-lexer.h} (78%) create mode 100644 gcc/rust/expand/rust-proc-macro.cc copy gcc/rust/{util/rust-base62.h => expand/rust-proc-macro.h} (69%) delete mode 100644 gcc/rust/typecheck/rust-hir-type-check-util.cc delete mode 100644 gcc/rust/typecheck/rust-hir-type-check-util.h delete mode 100644 gcc/rust/typecheck/rust-tycheck-dump.h copy gcc/rust/util/{rust-make-unique.h => rust-dir-owner.cc} (54%) copy gcc/rust/util/{rust-abi.h => rust-dir-owner.h} (70%) create mode 100644 gcc/rust/util/rust-token-converter.cc copy gcc/rust/util/{rust-make-unique.h => rust-token-converter.h} (68%) create mode 100644 gcc/testsuite/rust/compile/braced_macro_arm.rs create mode 100644 gcc/testsuite/rust/compile/braced_macro_statements1.rs create mode 100644 gcc/testsuite/rust/compile/braced_macro_statements2.rs create mode 100644 gcc/testsuite/rust/compile/braced_macro_statements3.rs create mode 100644 gcc/testsuite/rust/compile/cfg-attr.rs create mode 100644 gcc/testsuite/rust/compile/cfg6.rs create mode 100644 gcc/testsuite/rust/compile/derive_empty.rs create mode 100644 gcc/testsuite/rust/compile/derive_macro1.rs create mode 100644 gcc/testsuite/rust/compile/derive_macro3.rs create mode 100644 gcc/testsuite/rust/compile/derive_macro4.rs create mode 100644 gcc/testsuite/rust/compile/derive_macro6.rs create mode 100644 gcc/testsuite/rust/compile/derive_macro7.rs create mode 100644 gcc/testsuite/rust/compile/derive_macro8.rs create mode 100644 gcc/testsuite/rust/compile/doc_macro.rs create mode 100644 gcc/testsuite/rust/compile/for_expr.rs rename gcc/testsuite/rust/compile/{ => issue-1089}/test_mod.rs (100%) create mode 100644 gcc/testsuite/rust/compile/issue-1813.rs create mode 100644 gcc/testsuite/rust/compile/issue-2019-1.rs create mode 100644 gcc/testsuite/rust/compile/issue-2019-2.rs copy gcc/testsuite/rust/compile/{expand_macro_qual_path_in_type.rs => issue-2019-3 [...] create mode 100644 gcc/testsuite/rust/compile/issue-2036.rs create mode 100644 gcc/testsuite/rust/compile/issue-2165.rs create mode 100644 gcc/testsuite/rust/compile/issue-2166.rs create mode 100644 gcc/testsuite/rust/compile/issue-2178.rs create mode 100644 gcc/testsuite/rust/compile/issue-2188.rs create mode 100644 gcc/testsuite/rust/compile/issue-2189.rs create mode 100644 gcc/testsuite/rust/compile/issue-2190-1.rs create mode 100644 gcc/testsuite/rust/compile/issue-2190-2.rs create mode 100644 gcc/testsuite/rust/compile/issue-2195.rs create mode 100644 gcc/testsuite/rust/compile/issue-2207.rs create mode 100644 gcc/testsuite/rust/compile/issue-2225.rs create mode 100644 gcc/testsuite/rust/compile/issue-2238.rs create mode 100644 gcc/testsuite/rust/compile/issue-2304.rs create mode 100644 gcc/testsuite/rust/compile/macro-delim.rs create mode 100644 gcc/testsuite/rust/compile/macro-issue2192.rs create mode 100644 gcc/testsuite/rust/compile/macro-issue2194.rs create mode 100644 gcc/testsuite/rust/compile/macro-issue2229.rs create mode 100644 gcc/testsuite/rust/compile/macro-issue2264.rs create mode 100644 gcc/testsuite/rust/compile/macro-issue2268.rs create mode 100644 gcc/testsuite/rust/compile/macro53.rs create mode 100644 gcc/testsuite/rust/compile/macro54.rs create mode 100644 gcc/testsuite/rust/compile/macro55.rs create mode 100644 gcc/testsuite/rust/compile/macro_call_statement.rs create mode 100644 gcc/testsuite/rust/compile/macro_use1.rs rename gcc/testsuite/rust/compile/{ => mod_missing_middle}/missing_middle/both_pat [...] rename gcc/testsuite/rust/compile/{ => mod_missing_middle}/missing_middle/explicit [...] rename gcc/testsuite/rust/compile/{missing_middle => mod_missing_middle/missing_mi [...] rename gcc/testsuite/rust/compile/{ => mod_missing_middle}/missing_middle/inner_pa [...] rename gcc/testsuite/rust/compile/{ => mod_missing_middle}/missing_middle/outer_pa [...] rename gcc/testsuite/rust/compile/{ => mod_missing_middle}/missing_middle/sub/mod. [...] create mode 100644 gcc/testsuite/rust/compile/nested_macro_use1.rs create mode 100644 gcc/testsuite/rust/compile/nested_macro_use2.rs create mode 100644 gcc/testsuite/rust/compile/nested_macro_use3.rs create mode 100644 gcc/testsuite/rust/compile/stmt_with_block_dot.rs create mode 100644 gcc/testsuite/rust/compile/struct-expr-parse.rs rename gcc/testsuite/rust/compile/torture/{ => extern_mod1}/modules/mod.rs (100%) copy gcc/testsuite/rust/compile/torture/{loop4.rs => loop8.rs} (73%) create mode 100644 gcc/testsuite/rust/compile/torture/utf8_identifiers.rs create mode 100644 gcc/testsuite/rust/compile/torture/utf8_whitespaces.rs create mode 100644 gcc/testsuite/rust/execute/torture/coercion3.rs create mode 100644 gcc/testsuite/rust/execute/torture/derive_macro1.rs create mode 100644 gcc/testsuite/rust/execute/torture/derive_macro3.rs create mode 100644 gcc/testsuite/rust/execute/torture/derive_macro4.rs rename gcc/testsuite/rust/execute/torture/{ => extern_mod4}/modules/mod.rs (100%) create mode 100644 gcc/testsuite/rust/execute/torture/issue-2179.rs create mode 100644 gcc/testsuite/rust/execute/torture/issue-2180.rs create mode 100644 gcc/testsuite/rust/execute/torture/issue-2236.rs create mode 100644 gcc/testsuite/rust/execute/torture/macro_use1.rs copy libgrust/libproc_macro/{tokentree.cc => ffistring.cc} (54%) copy libgrust/libproc_macro/{punct.h => ffistring.h} (68%) create mode 100644 libgrust/libproc_macro/rust/bridge/ffistring.rs copy libgrust/libproc_macro/{group.cc => span.cc} (83%) copy libgrust/libproc_macro/{punct.h => span.h} (83%)