public inbox for gcc-rust@gcc.gnu.org
 help / color / mirror / Atom feed
* [PATCHSET] Update of GCC upstream with gccrs development repository
@ 2024-01-19 13:54 Arthur Cohen
  0 siblings, 0 replies; 2+ messages in thread
From: Arthur Cohen @ 2024-01-19 13:54 UTC (permalink / raw)
  To: GCC Patches, gcc-rust

Hi everyone,

This patchset updates trunk with all of 2023's commits concerning the 
Rust GCC frontend.

We apologize for the large amount of changes - we will change our 
upstreaming process for 2024 and will update upstream on a more regular 
basis.

This patchset contains multiple improvement to our frontend. In no 
particular order, this year, we've worked on the following topics:

1. Procedural macro support, which enables users to write complex macros 
reusing the compiler's lexer and parser. This required extensive changes 
to GCC's build system, as well as the development of a binary interface 
so that the Rust frontend could perform dynamic function calls to 
external libraries during macro expansion.

2. Parser improvements, and most notably, parser relaxation! In order to 
accept more "invalid" Rust concepts, we spent a great deal of time 
making the parser accept a lot more constructs, which are then being 
rejected in a later AST Validation pass. A recent example of why this is 
needed is present in the latest stable release of Rust [1], the 
beautifully named "RPITIT" feature - "return position impl trait in traits".

Previously, our parser would fail to parse trait functions returning 
`impl Trait` values, but it now correctly errors out, mentioning that 
they are being parsed but are not valid Rust. When we eventually catch 
up to modern Rust versions, it will allow us to enable their usage only 
if a specific nightly feature is used for example.

3. Closure support
4. The beginnings of a borrow checker framework
5. Iterators
6. More patten matching
7. A new name resolution algorithm
8. Lots of cleanups
9. Derive macros, including built-in derive macros.
10. Rust error codes, which will help us attempt to pass the `rustc` 
testsuite
11. New compiler intrinsics

And a lot more. All of this work was possible thanks to our contributors:

Abdul Rafey
bl7awy
Charalampos Mitrodimas
Dave Evans
David Malcolm
Emanuele Micheletti
goar5670
Guillaume Gomez
Jakub Dupak
Jiakun Fan
liushuyu
Mahmoud Mohamed
Marc Poulhiès
Matthew Jasper
Mohammed Rizan Farooqui
Muhammad Mahad
M V V S Manoj Kumar
mxlol233
Nikos Alexandris
omkar-mohanty
Owen Avery
Parthib
Philip Herron
Pierre-Emmanuel Patry
Raiki Tamura
Sebastian Kirmayer
Sergey Bugaev
Tage Johansson
Thomas Schwinge
TieWay59
vincent
Xiao Ma
Zheyuan Chen

And thanks to the continued support of Open Source Security, inc and 
Embecosm.

We aim to bring the last missing pieces of the puzzle in order to 
compile `core` in the coming months, and we look forward to being part 
of the GCC 14.1 release.

[1]: https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html

Here is the list of patches we've added:

[PATCH 001/874] gccrs: Fix bootstrap build
[PATCH 002/874] gccrs: Fix missing build dependency
[PATCH 003/874] gccrs: Parse AltPattern
[PATCH 004/874] gccrs: Add feature gate for "rustc_attri".
[PATCH 005/874] gccrs: parser: Allow parsing of qualified type path
[PATCH 006/874] gccrs: parser: Allow `LEFT_SHIFT` to start
[PATCH 007/874] gccrs: typecheck: Refactor unify_site
[PATCH 008/874] gccrs: typecheck: Refactor coercion_site
[PATCH 009/874] gccrs: parser: Add parsing of auto traits
[PATCH 010/874] gccrs: macro_invoc_lexer: Add `split_current_token`
[PATCH 011/874] gccrs: ast: Add ExternalTypeItem node
[PATCH 012/874] gccrs: ast: Add proper visitors for ExternalTypeItem
[PATCH 013/874] gccrs: typecheck: Refactor cast_site
[PATCH 014/874] gccrs: parser: Parse `default` impl Functions and
[PATCH 015/874] gccrs: Implement and test include_str eager expansion
[PATCH 016/874] gccrs: parser: Parse external type item
[PATCH 017/874] gccrs: testsuite: Add extern type item test
[PATCH 018/874] gccrs: testsuite: Add test with missing semicolon
[PATCH 019/874] gccrs: Fix ICE in ADTType::is_concrete
[PATCH 020/874] gccrs: refactor unify commit as a static function
[PATCH 021/874] gccrs: Generic pointers are coerceable
[PATCH 022/874] gccrs: Allow infer vars on the lhs too
[PATCH 023/874] gccrs: Make coercion sites autoderef cycle optional
[PATCH 024/874] gccrs: Only emit errors during type-bounds checking
[PATCH 025/874] gccrs: autoderef unconstify so we can use in non
[PATCH 026/874] gccrs: bug-fix implicit inference checks
[PATCH 027/874] gccrs: Fix method resolution to use TryCoerce
[PATCH 028/874] gccrs: Remove cmp_autoderef_mode hack from old
[PATCH 029/874] gccrs: ast: Add RestPattern AST node
[PATCH 030/874] gccrs: Fix formatting
[PATCH 031/874] gccrs: Replace gcc_unreachable with rust_sorry_at
[PATCH 032/874] gccrs: Change struct StructPatternElements into class
[PATCH 033/874] gccrs: typecheck: Fix casting error behind generics
[PATCH 034/874] gccrs: Fix assignment operator overloads for AST and
[PATCH 035/874] gccrs: Add feature gate definition for
[PATCH 036/874] gccrs: hir: Refactor ASTLoweringStmt to source file.
[PATCH 037/874] gccrs: add {add,sub,mul}_with_overflow intrinsics
[PATCH 038/874] gccrs: parser: Fix if let parsing
[PATCH 039/874] gccrs: testsuite: Add a test for if let syntax
[PATCH 040/874] gccrs: ast: Add NodeId and clone to RestPattern
[PATCH 041/874] gccrs: parser: Add RestPattern parsing
[PATCH 042/874] gccrs: testsuite: Add a test for .. in slice patterns
[PATCH 043/874] gccrs: Add location info when opening a file fails in
[PATCH 044/874] gccrs: added support for printing HIR dump of
[PATCH 045/874] gccrs: fixup: parser: Fix bootstrap compile error
[PATCH 046/874] gccrs: parser: Add 0 sized slice pattern parsing
[PATCH 047/874] gccrs: add uninit intrinsic
[PATCH 048/874] gccrs: parser: Fix while let expr parsing
[PATCH 049/874] gccrs: parser: Fix parsing closure parameter
[PATCH 050/874] gccrs: Take advantage of our new unify_and to inject
[PATCH 051/874] gccrs: destructure parameter names.
[PATCH 052/874] gccrs: Fix missing move and copy constructors missing
[PATCH 053/874] gccrs: cleanup headers
[PATCH 054/874] gccrs: Add missing node_id copys in the copy
[PATCH 055/874] gccrs: Fix name-resolution to be permissive and carry
[PATCH 056/874] gccrs: make predicate bounds overwrite-able
[PATCH 057/874] gccrs: Resolve closure parameters without given type
[PATCH 058/874] gccrs: Cleanup and Assertion
[PATCH 059/874] gccrs: parser: Fix handling of multiple left angles
[PATCH 060/874] gccrs: Add length checking for tuple patterns
[PATCH 061/874] gccrs: expand: Add stringify macro
[PATCH 062/874] gccrs: Add AltPattern HIR node
[PATCH 063/874] gccrs: Add coherence related lang_items
[PATCH 064/874] gccrs: typecheck: Add basic typechecking for
[PATCH 065/874] gccrs: hir: add a helper function for visit
[PATCH 066/874] gccrs: fix some clang warnings
[PATCH 067/874] gccrs: hir: Fix ReferencePattern typechecking
[PATCH 068/874] gccrs: hir: Unify indentation approach with ast
[PATCH 069/874] gccrs: hir: Simplify indentation to single line
[PATCH 070/874] gccrs: enr: Fetch module items during early name
[PATCH 071/874] gccrs: hir: Provide basic handling for
[PATCH 072/874] gccrs: hir: Add ExportedMacro node and handling.
[PATCH 073/874] gccrs: HIR::AltPattern fixes
[PATCH 074/874] gccrs: Convert structs to classes
[PATCH 075/874] gccrs: Add method to access SlicePattern items
[PATCH 076/874] gccrs: Rename compiler proper
[PATCH 077/874] gccrs: hir: Improve pattern bindings handling in
[PATCH 078/874] gccrs: resolve: Handle multiple bindings to the same
[PATCH 079/874] gccrs: Add all rust keywords (except priv) to the
[PATCH 080/874] gccrs: reuse destructure code in compilation of types
[PATCH 081/874] gccrs: refactor is_concrete to not just virtual
[PATCH 082/874] gccrs: refactor TyTy::BaseType::is_unit to not use
[PATCH 083/874] gccrs: refactor monomoprhized_clone to not use
[PATCH 084/874] gccrs: group basetype virtuals together and remove
[PATCH 085/874] gccrs: tyty get rid of useless virtuals
[PATCH 086/874] gccrs: get rid of virtual dispatch for substitution
[PATCH 087/874] gccrs: cleanup header usage to decouple includes
[PATCH 088/874] gccrs: get rid of can_eq in CoerceionRules selection
[PATCH 089/874] gccrs: Remove solve_missing_mappings_from_this to
[PATCH 090/874] gccrs: add extra debug line for method resolve select
[PATCH 091/874] gccrs: Only infer when no generic arguments have been
[PATCH 092/874] gccrs: cleanup resolve method address code generation
[PATCH 093/874] gccrs: remove proxy class to use virtual method to
[PATCH 094/874] gccrs: resolve: Fix multiple bindings handling in
[PATCH 095/874] gccrs: Unify HIR::IfExprConseqIf{,Let} into
[PATCH 096/874] gccrs: Unify HIR::IfLetExprConseqIf{,Let} into
[PATCH 097/874] gccrs: resolve: Add name resolution for AltPattern
[PATCH 098/874] gccrs: Dump inner attrs for Dump::visit(BlockExpr &)
[PATCH 099/874] gccrs: add new apply_primtiive_type_hint to inference
[PATCH 100/874] gccrs: Fix bad method resolution
[PATCH 101/874] gccrs: Add move_val_init intrinsic
[PATCH 102/874] gccrs: Remove unused ResolvePattern visitor
[PATCH 103/874] gccrs: Cleanup unused headers
[PATCH 104/874] gccrs: Add name resolution and ast lowering for slice
[PATCH 105/874] gccrs: Return resolved_node_id when possible
[PATCH 106/874] gccrs: support use declaration to write the type into
[PATCH 107/874] gccrs: Fix `FeatureGate::gate` will crash on 32-bit
[PATCH 108/874] gccrs: Lower AltPattern
[PATCH 109/874] gccrs: rust-imports: Fix last few mentions of Go.
[PATCH 110/874] gccrs: ast: Dump each MacroRule properly without the
[PATCH 111/874] gccrs: Fix bad type inference
[PATCH 112/874] gccrs: Fix ICE on parsing trait object missing dyn
[PATCH 113/874] gccrs: Revert "hir: Add ExportedMacro node and
[PATCH 114/874] gccrs: mappings: Keep exported macro IDs
[PATCH 115/874] gccrs: lowering: Add lowering of exported macros
[PATCH 116/874] gccrs: expand: Move cfg-attrs related functions out
[PATCH 117/874] gccrs: expand: Add new ExpandVisitor class
[PATCH 118/874] gccrs: expand: Rename AttrVisitor -> CfgStrip
[PATCH 119/874] gccrs: Fix bad cast error to bool
[PATCH 120/874] gccrs: Remove commented out TuplePatternItemsSingle
[PATCH 121/874] gccrs: ast: Refactor rust-ast-lower-type.h to source
[PATCH 122/874] gccrs: ast: Fix location for pub(crate)
[PATCH 123/874] gccrs: resolver: Allow SimplePath to resolve to their
[PATCH 124/874] gccrs: privacy: Check for pub(crate) when resolving
[PATCH 125/874] gccrs: Fix parsing of array expressions.
[PATCH 126/874] gccrs: fix ICE when closure body is not a block
[PATCH 127/874] gccrs: libproc_macro: Add rust interface
[PATCH 128/874] gccrs: fix ICE with bad match arm type
[PATCH 129/874] gccrs: move missed testcase
[PATCH 130/874] gccrs: Add missing known attribute stable
[PATCH 131/874] gccrs: Add test to show multiple candidates for
[PATCH 132/874] gccrs: handle bare function types with no specified
[PATCH 133/874] gccrs: ast: Add conversion to token stream
[PATCH 134/874] gccrs: ast: Refactor and add some Path node visitors
[PATCH 135/874] gccrs: ast: Implement TokenStream visitor for meta
[PATCH 136/874] gccrs: ast: Add trailing comma formatting option
[PATCH 137/874] gccrs: ast: Add some expr TokenStream visitors
[PATCH 138/874] gccrs: ast: Add Tokenstream visitors for loop
[PATCH 139/874] gccrs: ast: Implement remaining expr TokenStream
[PATCH 140/874] gccrs: ast: Add ExternCrate TokenStream visitor
[PATCH 141/874] gccrs: ast: Add use declarations TokenStream visitors
[PATCH 142/874] gccrs: ast: Add Meta items TokenStream visitor
[PATCH 143/874] gccrs: ast: Add AltPattern TokenStream visitor
[PATCH 144/874] gccrs: ast: Add multiple formatting stub functions
[PATCH 145/874] gccrs: ast: Refactor SimplePath attribute name
[PATCH 146/874] gccrs: ast: Add TokenStream collect function
[PATCH 147/874] gccrs: ast: Add missing constructor implementation
[PATCH 148/874] gccrs: lex: Add source code token string
[PATCH 149/874] gccrs: session: Add tokenstream dump option
[PATCH 150/874] gccrs: token: Add type hints to string dump
[PATCH 151/874] gccrs: ast: Fix various TokenStream visitors
[PATCH 152/874] gccrs: privacy reporter should be permissive of error
[PATCH 153/874] gccrs: make distinction between error and empty for
[PATCH 154/874] gccrs: add missing name resolution to self params
[PATCH 155/874] gccrs: Fix handling of generic arguments for
[PATCH 156/874] gccrs: Fix bad cast as a char
[PATCH 157/874] gccrs: Handle "fn" and "fn_mut" lang items
[PATCH 158/874] gccrs: Fix ICE using constructors for intilizers in
[PATCH 159/874] gccrs: ast: Move rust-path implementation out of
[PATCH 160/874] gccrs: ast: Move pattern implementation out of
[PATCH 161/874] gccrs: ast: Fix tokenstream extern block statements
[PATCH 162/874] gccrs: ast: Fix match case comma output
[PATCH 163/874] gccrs: ast: Fix char literal ICE
[PATCH 164/874] gccrs: ast: Output inner attributes in tokenstreams
[PATCH 165/874] gccrs: ast: Output union's outer attributes
[PATCH 166/874] gccrs: ast: Fix attribute tokenstreams
[PATCH 167/874] gccrs: ast: Change visibility in token type
[PATCH 168/874] gccrs: ast: Visit crate inner attributes for
[PATCH 169/874] gccrs: ast: Fix macros in tokenstreams
[PATCH 170/874] gccrs: ast: Fix ICE on generic args path
[PATCH 171/874] gccrs: expand: Add derive expansion stubs
[PATCH 172/874] gccrs: expand: Add inner attribute expansion stubs
[PATCH 173/874] gccrs: ast: Add outer attribute getter to Expr class
[PATCH 174/874] gccrs: expand: Add stub function for attribute
[PATCH 175/874] gccrs: expand: Add call to outer attributes stubs
[PATCH 176/874] gccrs: expand: Add builtin attribute identification
[PATCH 177/874] gccrs: expand: Add outer attribute expansion on expr
[PATCH 178/874] gccrs: cleanup resolve method address
[PATCH 179/874] gccrs: cleanup query_compile to reuse destructure
[PATCH 180/874] gccrs: remove unused code in query_compile
[PATCH 181/874] gccrs: refactor resolve_method_address to be inside
[PATCH 182/874] gccrs: never re-setup trait item bound with a dyn
[PATCH 183/874] gccrs: Support fully qualified calls to trait items
[PATCH 184/874] gccrs: ast: Add difference between attributes
[PATCH 185/874] gccrs: Placate clang-format,
[PATCH 186/874] gccrs: Introduce AST::Visitable class for AST
[PATCH 187/874] gccrs: ast: Fix inner attribute tokenstream
[PATCH 188/874] gccrs: Unify AST::IfExprConseqIf{,Let} into
[PATCH 189/874] gccrs: Move functionality into HIR::ExprStmt from
[PATCH 190/874] gccrs: Unify HIR::ExprStmt derived class visiting
[PATCH 191/874] gccrs: Fully unify deriving classes into
[PATCH 192/874] gccrs: Handle underscore in MacroMatch.
[PATCH 193/874] gccrs: ast: Fix StructExprStruct tokenstream
[PATCH 194/874] gccrs: Unify AST::IfLetExprConseqIf{,Let} into
[PATCH 195/874] gccrs: parser: macro: reject separator in `?`
[PATCH 196/874] gccrs: Add lowering for if-let expressions
[PATCH 197/874] gccrs: ast: Make AST::Kind an enum class
[PATCH 198/874] gccrs: ast: Add AST::Kind::IDENTIFIER
[PATCH 199/874] gccrs: resolve: Add ResolveExpr::funny_error
[PATCH 200/874] gccrs: resolve: Add "break rust" Easter egg
[PATCH 201/874] gccrs: lex: Fix lifetime string representation
[PATCH 202/874] gccrs: parser: Fix attribute differentation
[PATCH 203/874] gccrs: ast: Fix tokenstream function body
[PATCH 204/874] gccrs: ast: Fix tokenstream QualifiedPathInExpression
[PATCH 205/874] gccrs: ast: Fix scope separator in tokenstreams
[PATCH 206/874] gccrs: libproc_macro: Add license headers
[PATCH 207/874] gccrs: libproc_macro: Add Literal type
[PATCH 208/874] gccrs: libproc_macro: Add literal ffi implementations
[PATCH 209/874] gccrs: libproc_macro: Drop function shall take a
[PATCH 210/874] gccrs: libproc_macro: Put literal members in
[PATCH 211/874] gccrs: libproc_macro: Add member functions to Literal
[PATCH 212/874] gccrs: Lower ErrorPropagationExpr from AST to HIR
[PATCH 213/874] gccrs: Add testcase to show matching of enum variants
[PATCH 214/874] gccrs: Implement Dump:visit() function for
[PATCH 215/874] gccrs: Add error message for AltPattern in let
[PATCH 216/874] gccrs: parser: Parse reference patterns correctly
[PATCH 217/874] gccrs: Deleted the as_string ASR and HIR dumps
[PATCH 218/874] gccrs: libproc_macro: Add ident implementation
[PATCH 219/874] gccrs: libproc_macro: Change drop rust interface
[PATCH 220/874] gccrs: libproc_macro: Add named constructor
[PATCH 221/874] gccrs: libproc_macro: Add namespace to Ident
[PATCH 222/874] gccrs: libproc_macro: Add Punct struct
[PATCH 223/874] gccrs: Fix translation mistakes 2023 in GCC/Rust
[PATCH 224/874] gccrs: libproc_macro: Add remaining tokenstream
[PATCH 225/874] gccrs: libproc_macro: Add drop function on Ident
[PATCH 226/874] gccrs: libproc_macro: Add drop function to Literal
[PATCH 227/874] gccrs: libproc_macro: Add remaining drop functions
[PATCH 228/874] gccrs: libproc_macro: Implement Drop for TokenStream
[PATCH 229/874] gccrs: libproc_macro: Fix literal drop function
[PATCH 230/874] gccrs: Resolve identifier-pattern struct pattern
[PATCH 231/874] gccrs: patterns: Add execution testcases to verify
[PATCH 232/874] gccrs: Fix memory corruption at peek_context
[PATCH 233/874] gccrs: minor refactor to reuse a variable instead of
[PATCH 234/874] gccrs: Add get_defid helper to TypeCheckContextItem
[PATCH 235/874] gccrs: add helper to check for a const or static
[PATCH 236/874] gccrs: add error state to TypeCheckContextItem and
[PATCH 237/874] gccrs: Track Self properly with TypePredicateBounds
[PATCH 238/874] gccrs: Fix ICE during method resolution
[PATCH 239/874] gccrs: Fix ICE in assignment of error type bound
[PATCH 240/874] gccrs: enable -Winfinite-recursion warnings by
[PATCH 241/874] gccrs: fix ICE with recursive function calls
[PATCH 242/874] gccrs: remove unused includes
[PATCH 243/874] gccrs: Fix ICE when we dont get a reference type
[PATCH 244/874] gccrs: remove unused header
[PATCH 245/874] gccrs: Add mechanism use pattern information to
[PATCH 246/874] gccrs: Add missing ABI mapping
[PATCH 247/874] gccrs: Add missing ABI checking on function types
[PATCH 248/874] gccrs: Fix -frust-dump-* error messages
[PATCH 249/874] gccrs: Minor tuning in AST dump
[PATCH 250/874] gccrs: Add accessors to
[PATCH 251/874] gccrs: Add missing
[PATCH 252/874] gccrs: Add missing where clause lowering for Impl
[PATCH 253/874] gccrs: resolve the associated_predicate when mapping
[PATCH 254/874] gccrs: Lower StructPatternFieldIdentPat
[PATCH 255/874] gccrs: Type check StructPatternFieldIdentPat
[PATCH 256/874] gccrs: Extract helper lookup_associated_impl_block
[PATCH 257/874] gccrs: qualified path syntax is used to disambiguate
[PATCH 258/874] gccrs: Improve operator overload check for recursive
[PATCH 259/874] gccrs: Fix infinite loop with parsing invalid generic
[PATCH 260/874] gccrs: cli: Add frust-extern option
[PATCH 261/874] gccrs: libproc_macro: Put all structures in a
[PATCH 262/874] gccrs: libproc_macro: Remove internal named
[PATCH 263/874] gccrs: libproc_macro: Build statically
[PATCH 264/874] gccrs: libproc_macro: Change proc_macro.h to main
[PATCH 265/874] gccrs: Fix out of bounds indexing while expanding
[PATCH 266/874] gccrs: Add is_expr method to AST::Stmt
[PATCH 267/874] gccrs: Handle replacing stripped tail expressions
[PATCH 268/874] gccrs: Add test from issue 1446
[PATCH 269/874] gccrs: libproc_macro: Add proc_macro interface
[PATCH 270/874] gccrs: libproc_macro: Add helpers to construct
[PATCH 271/874] gccrs: utils: Add bidirectional hashmap class
[PATCH 272/874] gccrs: builtin: Cleanup handling of builtin macros
[PATCH 273/874] gccrs: ast: Add Kind::MODULE
[PATCH 274/874] gccrs: ast: Add take_items() and set_items() methods
[PATCH 275/874] gccrs: enr: Accumulate nested escaped macros
[PATCH 276/874] gccrs: ast: Format AST code properly.
[PATCH 277/874] gccrs: Add missing compile locals for constants and
[PATCH 278/874] gccrs: Fix "default unsafe fn ..." parsing
[PATCH 279/874] gccrs: Fix ICE in check for unused global variables
[PATCH 280/874] gccrs: Redo how we handle unit types for the final
[PATCH 281/874] gccrs: we can only return unit-type when the ABI is
[PATCH 282/874] gccrs: unify how we handle DST's
[PATCH 283/874] gccrs: add missing coercion site code generation for
[PATCH 284/874] gccrs: Add missing coercion site logic to return
[PATCH 285/874] gccrs: Added HIR::InlineAsm node
[PATCH 286/874] gccrs: tokenstream: Convert group markers
[PATCH 287/874] gccrs: tokenstream: Convert single punctuation tokens
[PATCH 288/874] gccrs: tokenstream: Add joint punct token conversion
[PATCH 289/874] gccrs: tokenstream: Add tokens to Ident conversion
[PATCH 290/874] gccrs: tokenstream: Add string and byte string
[PATCH 291/874] gccrs: tokenstream: Add literal int draft conversion
[PATCH 292/874] gccrs: tokenstream: Add conversion for float literals
[PATCH 293/874] gccrs: ast: Rename TokenStream in the AST module
[PATCH 294/874] gccrs: ast: Rename rust-ast-tokenstream file
[PATCH 295/874] gccrs: ast: Rename header guard
[PATCH 296/874] gccrs: ast: Move token converter out of ast module
[PATCH 297/874] gccrs: converter: Remove redundant variable
[PATCH 298/874] gccrs: converter: Add TokenStream conversion function
[PATCH 299/874] gccrs: converter: Add group conversion implementation
[PATCH 300/874] gccrs: converter: Add from_tokentree function
[PATCH 301/874] gccrs: converter: Return a vector to const pointers
[PATCH 302/874] gccrs: converter: Const conversion to tokenstream
[PATCH 303/874] gccrs: converter: Add punct conversion function
[PATCH 304/874] gccrs: converter: Convert literals back to tokens
[PATCH 305/874] gccrs: converter: Add Ident conversions
[PATCH 306/874] gccrs: converter: Make converter input immutable
[PATCH 307/874] gccrs: converter: Fix some styling issues
[PATCH 308/874] gccrs: converter: Fix suffix condition
[PATCH 309/874] gccrs: Address invalid little-endian-only testcases
[PATCH 310/874] gccrs: Handle keywords in macro fragments
[PATCH 311/874] gccrs: ast: Remove ExprStmtWithBlock /
[PATCH 312/874] gccrs: Fix parsing of block expressions followed by
[PATCH 313/874] gccrs: Change return type of token_id_keyword_string
[PATCH 314/874] gccrs: dump: Dump `TupleIndexExpr`s
[PATCH 315/874] gccrs: Improve Optional<T&> implementation
[PATCH 316/874] gccrs: Allow hashing Optional<T>
[PATCH 317/874] gccrs: Make MacroInvocation cloning public
[PATCH 318/874] gccrs: Add AST::AttrInputMacro
[PATCH 319/874] gccrs: libproc_macro: Change rust literal internals
[PATCH 320/874] gccrs: libproc_macro: Change cpp literal
[PATCH 321/874] gccrs: converter: Merge dispatch into one function
[PATCH 322/874] gccrs: libproc_macro: Remove has_suffix attribute
[PATCH 323/874] gccrs: libproc_macro: Copy ffistring data from source
[PATCH 324/874] gccrs: libproc_macro: Change constructor in ffistring
[PATCH 325/874] gccrs: ast: Add `outer_attrs` to all `Item`s
[PATCH 326/874] gccrs: Handle keyword metavariables
[PATCH 327/874] gccrs: Improve Optional<T> implementation
[PATCH 328/874] gccrs: ast: Propagate type suffix
[PATCH 329/874] gccrs: Parse AttrInputMacro
[PATCH 330/874] gccrs: Add operator== for Optional.
[PATCH 331/874] gccrs: Only check first item of cfg_attr attribute as
[PATCH 332/874] gccrs: Fix macro resolutions in middle of multiple
[PATCH 333/874] gccrs: enr: Cleanup #[macro_use] accumulation
[PATCH 334/874] gccrs: hir: remove stray semicolon
[PATCH 335/874] gccrs: refactor resolve_method_address to be more
[PATCH 336/874] gccrs: support deref cycles to resolve to trait items
[PATCH 337/874] gccrs: Fix bounds checking to check both sides
[PATCH 338/874] gccrs: Fix handling of single fragments in
[PATCH 339/874] gccrs: Avoid invalid metavariable substitutions
[PATCH 340/874] gccrs: Add missing HIR lowering to item statements
[PATCH 341/874] gccrs: remove useless lookup to NodeId
[PATCH 342/874] gccrs: Fix missing pop of name scope at the end of
[PATCH 343/874] gccrs: remove unused header
[PATCH 344/874] gccrs: Add missing name resolution to item statements
[PATCH 345/874] gccrs: Fix cast site to not miss type-unifications
[PATCH 346/874] gccrs: Make key and key/value config options seperate
[PATCH 347/874] gccrs: expand: Add missing copyright headers
[PATCH 348/874] gccrs: ast: Add AstBuilder class.
[PATCH 349/874] gccrs: expansion: Add base for deriving builtin
[PATCH 350/874] gccrs: get rid of useless helper class and fix header
[PATCH 351/874] gccrs: Properly match delimiters
[PATCH 352/874] gccrs: libproc_macro: Add Span definition
[PATCH 353/874] gccrs: libproc_macro: Add cpp Span representation
[PATCH 354/874] gccrs: converter: Add conversion from locations to
[PATCH 355/874] gccrs: converter: Convert back Locations from spans
[PATCH 356/874] gccrs: converter: Refactor locations
[PATCH 357/874] gccrs: derive: Add #[derive(Clone)] for regular
[PATCH 358/874] gccrs: derive: Add #[derive(Copy)] builtin
[PATCH 359/874] gccrs: derive: Add proper derive(Clone) for unions
[PATCH 360/874] gccrs: derive: Add dummy builtin transcriber for
[PATCH 361/874] gccrs: ast: dump literals correctly
[PATCH 362/874] gccrs: Allow parsing a borrow from struct expression
[PATCH 363/874] gccrs: Handle crate metavariable
[PATCH 364/874] gccrs: Prevent initialization related warnings/errors
[PATCH 365/874] gccrs: Respect the concrete type when resolving
[PATCH 366/874] gccrs: Add error message when derive macro is invoked
[PATCH 367/874] gccrs: Fix non-mod-rs files' external module loading
[PATCH 368/874] gccrs: collector: Move implementation to header
[PATCH 369/874] gccrs: attributes: Add allow_internal_unstable
[PATCH 370/874] gccrs: libproc_macro: Add procmacro array definition
[PATCH 371/874] gccrs: expand: Add procmacro loading function
[PATCH 372/874] gccrs: libproc_macro: Rename Procmacro subtypes
[PATCH 373/874] gccrs: collector: Make visitors public
[PATCH 374/874] gccrs: libproc_macro: Fix capacity update in
[PATCH 375/874] gccrs: libproc_macro: Fix Tokenstream growth
[PATCH 376/874] gccrs: ast: Fix attribute collection
[PATCH 377/874] gccrs: expand: Add prc macro expander and
[PATCH 378/874] gccrs: expand: Add derive proc macro draft
[PATCH 379/874] gccrs: expand: Move derive system to new one
[PATCH 380/874] gccrs: expand: Remove proc macro fragment from
[PATCH 381/874] gccrs: expand: Add in order trait expansion
[PATCH 382/874] gccrs: expand: Expand item level attribute proc
[PATCH 383/874] gccrs: expand: Allow empty derive attribute
[PATCH 384/874] gccrs: expand: Make to_derive argument const
[PATCH 385/874] gccrs: introduce new types_compatable
[PATCH 386/874] gccrs: Remove obsolete error diagnostic
[PATCH 387/874] gccrs: Fix ICE for reference patterns in match
[PATCH 388/874] gccrs: ensure assoicated types are setup for concrete
[PATCH 389/874] gccrs: derive: Factor common fields inside the base
[PATCH 390/874] gccrs: fortify resolve_method_address to match the
[PATCH 391/874] gccrs: fixup: Remove old typecheck dump
[PATCH 392/874] gccrs: we can't check the bounds involving empty
[PATCH 393/874] gccrs: Remove direct error on macro rule
[PATCH 394/874] gccrs: Prevent invalid iterator dereference
[PATCH 395/874] gccrs: tokenize Unicode identifiers
[PATCH 396/874] gccrs: Print macro invocations in AST dump
[PATCH 397/874] gccrs: Handle tail expression normalization right
[PATCH 398/874] gccrs: Parse semicolons in more cases for statement
[PATCH 399/874] gccrs: fix unsafe lookup at zero index
[PATCH 400/874] gccrs: add new method to infer impl block type
[PATCH 401/874] gccrs: Fix generic argument tracking
[PATCH 402/874] gccrs: Apply generic arguments to the respective
[PATCH 403/874] gccrs: ErrorCode[E0433] Use of Undeclared Crate,
[PATCH 404/874] gccrs: Make MatchedFragmentContainer a tree-like
[PATCH 405/874] gccrs: expand: Derive statements
[PATCH 406/874] gccrs: expand: Add tail expr expansion
[PATCH 407/874] gccrs: expand: Convert last statement to tail expr
[PATCH 408/874] gccrs: expand: Merge arguments into one
[PATCH 409/874] gccrs: expand: Change names and document behavior
[PATCH 410/874] gccrs: Expand expressions/types correctly in more
[PATCH 411/874] gccrs: ErrorCode[E0277] Type Does Not Implement
[PATCH 412/874] gccrs: Add method selection to operator overloading
[PATCH 413/874] gccrs: Stop autoderef of raw pointer types
[PATCH 414/874] rust: Add -frust-name-resolution-2.0 option
[PATCH 415/874] gccrs: Match tokens in macros more closely
[PATCH 416/874] gccrs: gccrs:[E0026] Non-Existent Field Extraction in
[PATCH 417/874] gccrs: [E0023] Incorrect Number of Fields in Pattern
[PATCH 418/874] gccrs: Insert empty repeated metavars for nested
[PATCH 419/874] gccrs: Refactor lexer to handle UTF-8
[PATCH 420/874] gccrs: ast: Change Identifier definition
[PATCH 421/874] gccrs: ast: Add explicit default copy constructor
[PATCH 422/874] gccrs: fix tokenizing utf-8 whitespaces
[PATCH 423/874] gccrs: Add tests for Unicode identifiers
[PATCH 424/874] gccrs: dump: Remove tokenstream dump
[PATCH 425/874] gccrs: collector: Fix missing semicolon output
[PATCH 426/874] gccrs: dump: Replace ast dump internals
[PATCH 427/874] gccrs: dump: Output separating space under condition
[PATCH 428/874] gccrs: collector: Remove external container
[PATCH 429/874] gccrs: collector: Store CollectItem instead of
[PATCH 430/874] gccrs: collector: Implement formatting options
[PATCH 431/874] gccrs: dump: Add formatting to dump
[PATCH 432/874] gccrs: Track associated type generics
[PATCH 433/874] gccrs: fix how we handle coercions and casts of
[PATCH 434/874] gccrs: Improve macro repetition handling
[PATCH 435/874] gccrs: refactored field error function
[PATCH 436/874] gccrs: fix lexing byte literal
[PATCH 437/874] gccrs: parser: Propagate type hint value
[PATCH 438/874] gccrs: abi: Add testcase for using "Rust" as ABI
[PATCH 439/874] gccrs: cleanup getters to return &unique_ptr instead
[PATCH 440/874] gccrs: factor out inner attributes in a class
[PATCH 441/874] gccrs: FullVisitable abstract class
[PATCH 442/874] gccrs: Add new getters
[PATCH 443/874] gccrs: refactor: make crate.items private
[PATCH 444/874] gccrs: [E0027] struct pattern fails to specify
[PATCH 445/874] gccrs: fix ICE with inserting autoderef mappings
[PATCH 446/874] gccrs: Track fn_once output lang item properly
[PATCH 447/874] gccrs: Remove unnecessary methods of `Rust::Lexer`
[PATCH 448/874] gccrs: minor HIR interface cleanup
[PATCH 449/874] gccrs: [E0229] associated type bindings error
[PATCH 450/874] gccrs: [E0034] Ambiguous Method Call Error
[PATCH 451/874] gccrs: HIR cleanup
[PATCH 452/874] gccrs: Change class Location into typedef
[PATCH 453/874] gccrs: Add location info to `Rust::Identifier`
[PATCH 454/874] gccrs: gccrs:[E0046] Missing Items in Trait
[PATCH 455/874] gccrs: Ignore semicolon following a macro expansion
[PATCH 456/874] gccrs: add utf-8 validation for input source
[PATCH 457/874] gccrs: [E0063] constructor is missing fields
[PATCH 458/874] gccrs: [E0053] method 'x' has an incompatible type
[PATCH 459/874] gccrs: Reduce Linemap/Gcc_linemap abstraction
[PATCH 460/874] gccrs: [E0425] Use of unresolved name
[PATCH 461/874] gccrs: Reduce Linemap/Gcc_linemap abstraction further
[PATCH 462/874] gccrs: Create MacroInvocLexerBase
[PATCH 463/874] gccrs: collector: Fix some token collector
[PATCH 464/874] gccrs: dump: Fix spacing with dots and references
[PATCH 465/874] gccrs: collector: Fix method self parameter
[PATCH 466/874] gccrs: collector: Fix output for function qualifiers
[PATCH 467/874] gccrs: collector: Fix doubled generics
[PATCH 468/874] gccrs: collector: Fix trait impl block
[PATCH 469/874] gccrs: collector: Change match arm format
[PATCH 470/874] gccrs: dump: Fix dollar spacing rule
[PATCH 471/874] gccrs: collector: Add generic to inherent impl block
[PATCH 472/874] gccrs: collector: Reformat trait impl
[PATCH 473/874] gccrs: collector: Fix missing trait generics
[PATCH 474/874] gccrs: collector: Add generics to external functions
[PATCH 475/874] gccrs: collector: Add variadics to collector output
[PATCH 476/874] gccrs: collector: Output outer attributes on
[PATCH 477/874] gccrs: collector: Add where clause to trait impl
[PATCH 478/874] gccrs: collector: Fix method qualifier output
[PATCH 479/874] gccrs: collector: Output extern function attributes
[PATCH 480/874] gccrs: collector: Fix remaining trait & extern issues
[PATCH 481/874] gccrs: collector: Fix abi output
[PATCH 482/874] gccrs: Replace value initialization of Location with
[PATCH 483/874] gccrs: optional: Import tl's optional type
[PATCH 484/874] gccrs: optional: Adapt class to GCC's standards.
[PATCH 485/874] gccrs: util: Add tl::expected type
[PATCH 486/874] gccrs: expected: Adapt type to GCC's requirements.
[PATCH 487/874] gccrs: nr2.0: Add complex testcases
[PATCH 488/874] gccrs: [E0061] Refactored argument mismatch error
[PATCH 489/874] gccrs: [E0070] invalid left-hand side of assignment
[PATCH 490/874] gccrs: Replace Linemap::unknown_location with
[PATCH 491/874] gccrs: Remove Rust::Optional in favor of tl::optional
[PATCH 492/874] gccrs: Merge Gcc_linemap into Linemap
[PATCH 493/874] gccrs: Add rust_error_at accepting location_t and
[PATCH 494/874] gccrs: [E0124] field x is already declared in struct
[PATCH 495/874] gccrs: minor HIR cleanup
[PATCH 496/874] gccrs: Merge Linemap::to_string into
[PATCH 497/874] gccrs: Remove unnecessary usage of Location copy
[PATCH 498/874] gccrs: Change specifier of some forward declaration
[PATCH 499/874] gccrs: Add missing virtual destructor to interfaces
[PATCH 500/874] gccrs: remove braces around scalar initializers
[PATCH 501/874] gccrs: minor HIR cleanup
[PATCH 502/874] gccrs: dump: Output escaped character values
[PATCH 503/874] gccrs: Remove Linemap::get_location
[PATCH 504/874] gccrs: Change class RichLocation into typedef
[PATCH 505/874] gccrs: Remove Linemap::start_line
[PATCH 506/874] gccrs: Remove RichLocation typedef
[PATCH 507/874] gccrs: [E0133] Use of unsafe code outside of unsafe
[PATCH 508/874] gccrs: [E0093] Declaration of unknown intrinsic
[PATCH 509/874] gccrs: [E0658] Use of unstable feature
[PATCH 510/874] gccrs: rust-unreachable: Add specific behavior for
[PATCH 511/874] gccrs: Add include guard for rust-gcc.h
[PATCH 512/874] gccrs: Remove Linemap::predeclared_location
[PATCH 513/874] gccrs: [E0423] expected function, tuple struct or
[PATCH 514/874] gccrs: Move some Gcc_backend method definitions out
[PATCH 515/874] gccrs: Replace some usages of Location with
[PATCH 516/874] gccrs: Replace some more usages of Location with
[PATCH 517/874] gccrs: nr2.0: Add basic Rib class
[PATCH 518/874] gccrs: rework the HIR dump pass
[PATCH 519/874] gccrs: nr2.0: Add `ForeverStack` data structure.
[PATCH 520/874] gccrs: cli: Add frust-type option
[PATCH 521/874] gccrs: proc_macro: Add from string implementation
[PATCH 522/874] gccrs: libproc_macro: Change Ident structure
[PATCH 523/874] gccrs: libproc_macro: Change rust Ident definition
[PATCH 524/874] gccrs: proc macros: Add crate type attribute check
[PATCH 525/874] gccrs: proc macro: Detect malformed proc_macro_derive
[PATCH 526/874] gccrs: proc macro: Add help message to malformed
[PATCH 527/874] gccrs: proc macro: Add crate type regression tests
[PATCH 528/874] gccrs: Add a test for malformed derive declaration
[PATCH 529/874] gccrs: [E0268] break or continue used outside of loop
[PATCH 530/874] gccrs: Replace Location with location_t in gccrs
[PATCH 531/874] gccrs: Replace default argument with UNDEF_LOCATION
[PATCH 532/874] gccrs: import: Add cli extern crate resolution
[PATCH 533/874] gccrs: import: Change package opening prototypes
[PATCH 534/874] gccrs: import: Store procedural macros in extern
[PATCH 535/874] gccrs: import: Change raw pointer to unique_ptr
[PATCH 536/874] gccrs: import: Load procedural macros into external
[PATCH 537/874] gccrs: resolve: Add extern crate proc macro
[PATCH 538/874] gccrs: ast: Add manual dispatch for meta item
[PATCH 539/874] gccrs: attribute: Add missing header guard
[PATCH 540/874] gccrs: resolve: Add mappings for proc macros and
[PATCH 541/874] gccrs: resolve: Convert identifier to a SimplePath
[PATCH 542/874] gccrs: resolve: Remove ProcMacroInvocable interface
[PATCH 543/874] gccrs: Improve keyword check while parsing a macro
[PATCH 544/874] gccrs: Replace Location with location_t in parsing
[PATCH 545/874] gccrs: Replace usages of Location with location_t in
[PATCH 546/874] gccrs: Continue to replace usages of Location with
[PATCH 547/874] gccrs: proc_macro: Increase FFIString usage
[PATCH 548/874] gccrs: proc_macro: Mirror FFIString changes in
[PATCH 549/874] gccrs: [E0323] Implemented associated const, expected
[PATCH 550/874] gccrs: [E0045] Variadic Parameters Used on Non-C ABI
[PATCH 551/874] gccrs: Remove NodeId member from Identifier
[PATCH 552/874] gccrs: Emit error with proc macro on non functions
[PATCH 553/874] gccrs: Add tests for non function proc_macro
[PATCH 554/874] gccrs: Add tests for non function
[PATCH 555/874] gccrs: Add tests for non function proc_macro_derive
[PATCH 556/874] gccrs: proc macro: Add privacy check
[PATCH 557/874] gccrs: privacy: Add tests for private proc macro
[PATCH 558/874] gccrs: testsuite: Replace dg-excess-errors with
[PATCH 559/874] gccrs: testsuite: Add tests for pub items in
[PATCH 560/874] gccrs: privacy: Refactor proc macro privacy check
[PATCH 561/874] gccrs: proc_macro: Refactor attribute search
[PATCH 562/874] gccrs: proc_macro: Rename from_string callback symbol
[PATCH 563/874] gccrs: proc_macro: Add is_available callback
[PATCH 564/874] gccrs: proc_macro: Add is_available function
[PATCH 565/874] gccrs: proc_macro: Remode function indirection
[PATCH 566/874] gccrs: proc_macro: Delete unused prototype
[PATCH 567/874] gccrs: proc_macro: Remove useless typedef
[PATCH 568/874] gccrs: Replace Location with location_t in unnamed
[PATCH 569/874] gccrs: Check proc_macro attributes on non root
[PATCH 570/874] gccrs: Add multiple tests for non root proc macro
[PATCH 571/874] gccrs: New Error Code Framework
[PATCH 572/874] gccrs: Move callbacked function in a new namespace
[PATCH 573/874] gccrs: converter: Move literal conversion out
[PATCH 574/874] gccrs: proc_macro: Add literal_from_string callback
[PATCH 575/874] gccrs: [E0571] break with argument in non-loop loop
[PATCH 576/874] gccrs: Replace usages of Location with location_t in
[PATCH 577/874] gccrs: Remove Location typedef
[PATCH 578/874] gccrs: error codes: Add rust_error_codes.def,
[PATCH 579/874] gccrs: Add function for Unicode NFC normalization
[PATCH 580/874] gccrs: fix ICE when we have unimplemented/invalid
[PATCH 581/874] gccrs: Move Gcc_backend declaration to header file
[PATCH 582/874] gccrs: Track trait bound polarity properly
[PATCH 583/874] gccrs: Track polarity in type bound predicate
[PATCH 584/874] gccrs: Begin enforcing Sized properly and support
[PATCH 585/874] gccrs: fix ice when function is outside of context
[PATCH 586/874] gccrs: Add missing CHECKING_P guard to
[PATCH 587/874] gccrs: Add Unicode check for crate_name attributes
[PATCH 588/874] gccrs: Fix ICE by adding check for enum candidate's
[PATCH 589/874] gccrs: use tl::optional for macro transcribers
[PATCH 590/874] gccrs: Use MacroInvocLexerBase in MacroInvocLexer
[PATCH 591/874] gccrs: [E0572] return is outside of function context
[PATCH 592/874] gccrs: name resolution 2.0: Add base for our context
[PATCH 593/874] gccrs: top-level: Add base `TopLevel` visitor
[PATCH 594/874] gccrs: forever-stack: Use rust_assert instead of
[PATCH 595/874] gccrs: Normalize Hangul to NFC
[PATCH 596/874] gccrs: nr2.0: Add DefaultResolver visitor
[PATCH 597/874] gccrs: nr2.0: Use DefaultResolver for TopLevel
[PATCH 598/874] gccrs: better handling of incorrect file loading in
[PATCH 599/874] gccrs: [E0308] mismatch types on assignment
[PATCH 600/874] gccrs: [E0635] Use of Unknown feature.
[PATCH 601/874] gccrs: [E0426] Use of undeclared label
[PATCH 602/874] gccrs: rib2.0: Add shadowing
[PATCH 603/874] gccrs: forever stack: Add path resolution
[PATCH 604/874] gccrs: resolver: Resolve macros too.
[PATCH 605/874] gccrs: toplevel: Handle macro definitions properly
[PATCH 606/874] gccrs: nr2.0: Visit receiver/call expression and
[PATCH 607/874] gccrs: nr2.0: Add Early name resolution visitor
[PATCH 608/874] gccrs: session-manager: Run name resolution 2.0 if
[PATCH 609/874] gccrs: nr2.0: Add complex macro name resolution test
[PATCH 610/874] gccrs: ast: Add `get_kind` method to
[PATCH 611/874] gccrs: nr2.0: Add macros 2.0 in Ribs in TopLevel
[PATCH 612/874] gccrs: nr2.0: Add macros 2.0 resolution testcase.
[PATCH 613/874] gccrs: [E0107] Wrong number of generic argument
[PATCH 614/874] gccrs: [E0015] Use of non-const inside const
[PATCH 615/874] gccrs: [E0658] Unstable langauge feature
[PATCH 616/874] gccrs: Fix a warning about extra semicolon
[PATCH 617/874] gccrs: [E0412] used type name not in scope
[PATCH 618/874] gccrs: Normalize all identifier tokens
[PATCH 619/874] gccrs: Remove Backend::bool_type and
[PATCH 620/874] gccrs: Move Backend::error_variable to
[PATCH 621/874] gccrs: [E0282] type annotations needed
[PATCH 622/874] gccrs: [E0308] array misamatch types
[PATCH 623/874] gccrs: Add function `Rust::encode_punycode`
[PATCH 624/874] gccrs: Remove unneeded references to "this" in
[PATCH 625/874] gccrs: Basic formatting/comment fixes
[PATCH 626/874] gccrs: [E0703] Use of Invalid ABI
[PATCH 627/874] gccrs: [E0541] Use of unknown meta item
[PATCH 628/874] gccrs: [E0054/E0604/E0620/E0606] TypeCasting
[PATCH 629/874] gccrs: Adjust HIR dump for IfExpr and
[PATCH 630/874] gccrs: macro-expand: Keep optional references to
[PATCH 631/874] gccrs: clean up Codepoint and InputSource
[PATCH 632/874] gccrs: Use MacroInvocLexerBase in ProcMacroInvocLexer
[PATCH 633/874] gccrs: remove horrible hack in solving complex
[PATCH 634/874] gccrs: Fix legacy mangling to use Unicode escape
[PATCH 635/874] gccrs: Add missing CHECKING_P guard to
[PATCH 636/874] gccrs: Cleanup HIR dump
[PATCH 637/874] gccrs: simplify matching possible candidates
[PATCH 638/874] gccrs: improve name mangling hash
[PATCH 639/874] gccrs: Type annotation for make-unicode-data.py
[PATCH 640/874] gccrs: diagnostics: Fix mismatch between new[] and
[PATCH 641/874] gccrs: [E0534] inline attribute was malformed
[PATCH 642/874] gccrs: Support for rich-loc & errorcode in parser
[PATCH 643/874] gccrs: [E0753] Use of inner doc comment in invalid
[PATCH 644/874] gccrs: [E0380] Use of auto trait with method or
[PATCH 645/874] gccrs: [E0535] Unknown argument given to inline
[PATCH 646/874] gccrs: [E0164] Neither tuple struct nor tuple variant
[PATCH 647/874] gccrs: fix lexer exponent output on tuple indices
[PATCH 648/874] gccrs: Add a regression test for decimal lexing
[PATCH 649/874] gccrs: [E0034] found more than one items for method
[PATCH 650/874] gccrs: Non-allowed default type paramters
[PATCH 651/874] gccrs: [E0391] Detected type dependency cycle
[PATCH 652/874] gccrs: Add punycode encoding to v0 mangling
[PATCH 653/874] gccrs: Handle gengtype annotations in
[PATCH 654/874] gccrs: Remove stmt_tree and dependency on
[PATCH 655/874] gccrs: [E0573] Something other than type was used
[PATCH 656/874] gccrs: Improve byte vector to string conversion
[PATCH 657/874] gccrs: Invalid order of generic parameters
[PATCH 658/874] gccrs: Fix compilation of types which hold onto
[PATCH 659/874] gccrs: Namespace related tweaks
[PATCH 660/874] gccrs: Rename some structs to avoid ODR issues
[PATCH 661/874] gccrs: Fork c++ resorting methods
[PATCH 662/874] gccrs: [E0271] Type mismatch between associated type
[PATCH 663/874] gccrs: diagnostics: Added non-const `rich_location *`
[PATCH 664/874] gccrs: Add missing gengtype related structs
[PATCH 665/874] gccrs: [E0769] Use of tuple struct/variant in struct
[PATCH 666/874] gccrs: Handle gengtype annotations in
[PATCH 667/874] gccrs: Resolve nested macro definition
[PATCH 668/874] gccrs: Add regression test for nested macros
[PATCH 669/874] gccrs: Collect error instance instead of lambda
[PATCH 670/874] gccrs: Fix bad uninit intrinsic
[PATCH 671/874] gccrs: Fix overflow intrinsic use before init
[PATCH 672/874] gccrs: Mark uninit-intrinsic as side-effects
[PATCH 673/874] gccrs: Fix move_val_init
[PATCH 674/874] gccrs: fix bug in the iterator testcase
[PATCH 675/874] gccrs: Move type-related functions into base class
[PATCH 676/874] gccrs: Fix invalid call to vector::front in
[PATCH 677/874] gccrs: [E0658] top level or-patterns are not allowed
[PATCH 678/874] gccrs: Add check for no_mangle attribute
[PATCH 679/874] gccrs: Fix ODR violations
[PATCH 680/874] gccrs: Move label-related functions into base class
[PATCH 681/874] gccrs: Improve type checking for if expressions
[PATCH 682/874] gccrs: Move debug-related functions into base class
[PATCH 683/874] gccrs: [E0603] Use of private item outside scope
[PATCH 684/874] gccrs: Move variable-related methods into base class
[PATCH 685/874] gccrs: Move some simple expression-related methods
[PATCH 686/874] gccrs: [E0532] Pattern arm did not match expected
[PATCH 687/874] gccrs: gccrs:[E0592] methods or associated functions
[PATCH 688/874] gccrs: Move function-related methods into base class
[PATCH 689/874] gccrs: Move statement-related methods into base class
[PATCH 690/874] gccrs: Rename libproc_macro to libproc_macro_internal
[PATCH 691/874] gccrs: libproc_macro: Split c++ and rust
[PATCH 692/874] gccrs: Move block-related methods into base class
[PATCH 693/874] gccrs: Fix match-expression code-gen
[PATCH 694/874] gccrs: Make is_builtin a member function
[PATCH 695/874] gccrs: Set traits getter as member function
[PATCH 696/874] gccrs: Change trait getter to return references
[PATCH 697/874] gccrs: Ease some constraints on derive definition
[PATCH 698/874] gccrs: Parse unparsed derive tokenstreams
[PATCH 699/874] gccrs: Visit function and structure attributes
[PATCH 700/874] gccrs: Add proc macro ast representation
[PATCH 701/874] gccrs: Add proc macros abstractions to crate
[PATCH 702/874] gccrs: Add getters for different types of proc macros
[PATCH 703/874] gccrs: Change early resolver visit_attributes
[PATCH 704/874] gccrs: Add proc macro top level discovery
[PATCH 705/874] gccrs: Move proc macro definition to mappings
[PATCH 706/874] gccrs: Supress error with proc macro crates
[PATCH 707/874] gccrs: Move extern crate resolving
[PATCH 708/874] gccrs: resolver: Refactor assertion
[PATCH 709/874] gccrs: resolver: Refactor macro insertion
[PATCH 710/874] gccrs: Clarify package import procedure
[PATCH 711/874] gccrs: Move remaining expression-related methods into
[PATCH 712/874] gccrs: Remove Backend::write_export_data
[PATCH 713/874] gccrs: Use optional for proc macro invocation lookup
[PATCH 714/874] gccrs: Change proc macro definition lookup to
[PATCH 715/874] gccrs: Retrieve def for derive & attribute proc
[PATCH 716/874] gccrs: Change proc macro mapping definition insertion
[PATCH 717/874] gccrs: Add proc macro definition insertion
[PATCH 718/874] gccrs: Add missing linemap to lexer
[PATCH 719/874] gccrs: Remove Gcc_backend
[PATCH 720/874] gccrs: Unify raw attribute values
[PATCH 721/874] gccrs: Convert class Backend into namespace
[PATCH 722/874] gccrs: [E0599] Failed to resovle method
[PATCH 723/874] gccrs: privacy: Add testcase for #1260
[PATCH 724/874] gccrs: privacy: Uncomment test relying on #1257
[PATCH 725/874] gccrs: Remove unused `ctx` argument in
[PATCH 726/874] gccrs: Fix typechecking (and compilation) error for
[PATCH 727/874] gccrs: Shorten `make_unsigned_long_tree` code and
[PATCH 728/874] gccrs: Rename "rust_error_codes.def" to
[PATCH 729/874] gccrs: rust-builtins: add likely and unlikey
[PATCH 730/874] gccrs: rust-compile-intrinsic: add `copy` intrinsics
[PATCH 731/874] gccrs: Use namespace definition to simplify function
[PATCH 732/874] gccrs: Remove unused complex number support
[PATCH 733/874] gccrs: Memoize Backend::wchar_type
[PATCH 734/874] gccrs: Add intrinsics::assume
[PATCH 735/874] gccrs: trivial typo fix.
[PATCH 736/874] gccrs: Add license text to libproc_macro rust
[PATCH 737/874] gccrs: Minor typo fix
[PATCH 738/874] gccrs: Remove HIR::ForLoopExpr
[PATCH 739/874] gccrs: [E0617] attempt for invalid type variable in
[PATCH 740/874] gccrs: port over readonly_error from c-family for
[PATCH 741/874] gccrs: Add debug helper to dump HIR
[PATCH 742/874] gccrs: Fix spelling
[PATCH 743/874] gccrs: Fix CanonicalPath for inherent impl
[PATCH 744/874] gccrs: Fix ICE when emitting an error during cfg
[PATCH 745/874] gccrs: Fix type confusion in coercion
[PATCH 746/874] gccrs: Removed unnecessary comments
[PATCH 747/874] gccrs: Fix parser bug on tupplestruct pattern
[PATCH 748/874] gccrs: Add test for parser bug
[PATCH 749/874] gccrs: minor changes (typo and minor refactor)
[PATCH 750/874] gccrs: Adjust methods for TuplePatternItems to match
[PATCH 751/874] gccrs: Rename cloning methods in TupleStructItems and
[PATCH 752/874] gccrs: Initial implementation of v0 mangling
[PATCH 753/874] gccrs: Change debug log call to as_string function
[PATCH 754/874] gccrs: Fix type param bound parsing with opening
[PATCH 755/874] gccrs: Add a regression test for global path parsing
[PATCH 756/874] gccrs: TyTy: TyTy improved subclass casting and
[PATCH 757/874] gccrs: TyTy: use new subclass API
[PATCH 758/874] gccrs: Fix pub unit type parsing
[PATCH 759/874] gccrs: Add regression test
[PATCH 760/874] gccrs: Add comma for expr delimiter to fix match arms
[PATCH 761/874] gccrs: Add regression test
[PATCH 762/874] gccrs: Replace get_pattern_node_id with get_node_id
[PATCH 763/874] gccrs: Fix path expr segment parsing with generic
[PATCH 764/874] gccrs: Add a new regression test
[PATCH 765/874] gccrs: Allow call to macro named "default" at item
[PATCH 766/874] gccrs: Add a new regression test for macro call
[PATCH 767/874] gccrs: Fix RangeFromExpr parsing in for loops
[PATCH 768/874] gccrs: Add a new regression test
[PATCH 769/874] gccrs: Add new regression test
[PATCH 770/874] gccrs: Allow macro named macro_rules
[PATCH 771/874] gccrs: Add new regression test
[PATCH 772/874] gccrs: Add a new test for mbe named macro_rules
[PATCH 773/874] gccrs: Add path to macro fragment follow restrictions
[PATCH 774/874] gccrs: Add new regression test for macro matcher
[PATCH 775/874] gccrs: Break OR tokens in closure parameter list
[PATCH 776/874] gccrs: Add new test for closure in closure parsing
[PATCH 777/874] gccrs: Add tests for v0 mangling
[PATCH 778/874] gccrs: Create base class AssociatedItem
[PATCH 779/874] gccrs: ast: Parse labelled block
[PATCH 780/874] gccrs: hir: Lower labelled block
[PATCH 781/874] gccrs: resolve: Resolve labelled block
[PATCH 782/874] gccrs: typecheck: add loop ctx for labelled block
[PATCH 783/874] gccrs: compile: bail on labelled block
[PATCH 784/874] gccrs: Make lowering of AssociatedItem instances
[PATCH 785/874] gccrs: Make resolution of AssociatedItem instances
[PATCH 786/874] gccrs: hir: Refactor - avoid copy in getter
[PATCH 787/874] gccrs: ast: Handle tuplestruct pattern with indices
[PATCH 788/874] gccrs: hir: Add missing getter
[PATCH 789/874] gccrs: hir: Rename get_pattern_mappings method
[PATCH 790/874] gccrs: hir: Rename ComoundAssignment getters
[PATCH 791/874] gccrs: hir: Avoid copy in getter (PathPattern)
[PATCH 792/874] gccrs: Parse const with no value expression
[PATCH 793/874] gccrs: Add a new regression test for issue 2665
[PATCH 794/874] gccrs: Fix warning with overridden virtual methods
[PATCH 795/874] gccrs: borrowck: Add initial structure for
[PATCH 796/874] gccrs: borrowck: Add CLI option for borrowck
[PATCH 797/874] gccrs: borrowck: Execute only with CLI flag
[PATCH 798/874] gccrs: borrowck: Create Borrow-checker IR (BIR)
[PATCH 799/874] gccrs: borrowck: Create BIR builders (visitors)
[PATCH 800/874] gccrs: borrowck: BIR dump
[PATCH 801/874] gccrs: borrowck: Dump: proper comma separation
[PATCH 802/874] gccrs: borrowck: Dump: simplify cfg
[PATCH 803/874] gccrs: borrowck: Dump improve jumps
[PATCH 804/874] gccrs: borrowck: BIR: handle break
[PATCH 805/874] gccrs: borrowck: Dump: handle infinite loops
[PATCH 806/874] gccrs: borrowck: BIR continue
[PATCH 807/874] gccrs: borrowck: Make goto explicit.
[PATCH 808/874] gccrs: borrowck: Docs
[PATCH 809/874] gccrs: borrowck: Dev notes
[PATCH 810/874] gccrs: borrowck: Refactor and BIR improvements
[PATCH 811/874] gccrs: Make proc macro definition cdecl
[PATCH 812/874] gccrs: Change ABI setup and add gccrs_proc_macro attr
[PATCH 813/874] gccrs: Add const getter for tokentrees
[PATCH 814/874] gccrs: Add containers for proc macro collection
[PATCH 815/874] gccrs: Reformat comments
[PATCH 816/874] gccrs: Collect procedural macros in the crate
[PATCH 817/874] gccrs: Add getters for proc macro mappings
[PATCH 818/874] gccrs: Add utility function to build proc macro types
[PATCH 819/874] gccrs: Change proc macro entrypoint
[PATCH 820/874] gccrs: Add an explicit value to proc macro enum kind
[PATCH 821/874] gccrs: Add macro buffer global variable export
[PATCH 822/874] gccrs: Put common functions in their own namespace
[PATCH 823/874] gccrs: Add array length to the proc macro buffer
[PATCH 824/874] gccrs: Move proc macro builders to their own file
[PATCH 825/874] gccrs: Document proc macro token tree indices
[PATCH 826/874] gccrs: Compile pattern match statements into
[PATCH 827/874] gccrs: HIR: fix typo
[PATCH 828/874] gccrs: HIR: remove obsole double borrow member
[PATCH 829/874] gccrs: Fix token lexed as a float literal
[PATCH 830/874] gccrs: Add regression test for float literal tuple
[PATCH 831/874] gccrs: Add missing override specifier
[PATCH 832/874] gccrs: Move SingleASTNode implementation out of
[PATCH 833/874] gccrs: Add more checks for expr value in early
[PATCH 834/874] gccrs: Add ast validation checker
[PATCH 835/874] gccrs: Add two new steps to compile process
[PATCH 836/874] gccrs: Add call to ast validation checker
[PATCH 837/874] gccrs: Emit an error on associated const without
[PATCH 838/874] gccrs: Small fix to the ast collector visitor
[PATCH 839/874] gccrs: Add some reference getter
[PATCH 840/874] gccrs: Add a default AST visitor
[PATCH 841/874] gccrs: Add a new visitor that gathers context
[PATCH 842/874] gccrs: Make use of the Contextual visitor in
[PATCH 843/874] gccrs: Add a new test for const without body
[PATCH 844/874] gccrs: Change FunctionParam to represent variadic
[PATCH 845/874] gccrs: Parse variadic functions
[PATCH 846/874] gccrs: Add a function to check if a function is
[PATCH 847/874] gccrs: Allow variadic NamedFunctionParam
[PATCH 848/874] gccrs: Fix multiple issues with variadic
[PATCH 849/874] gccrs: Add a new regression test
[PATCH 850/874] gccrs: Parse named variadic parameters
[PATCH 851/874] gccrs: Add a new regression test for named variadics
[PATCH 852/874] gccrs: Add named variadic argument test
[PATCH 853/874] gccrs: Replace AST::Method with existing
[PATCH 854/874] gccrs: Add lifetime name validation pass
[PATCH 855/874] gccrs: Add regression test for lifetime name
[PATCH 856/874] gccrs: Add licence text and change header guard name
[PATCH 857/874] gccrs: Add new keyword utility class
[PATCH 858/874] gccrs: Replace local keyword set with the utils
[PATCH 859/874] gccrs: Change keyword set to a map
[PATCH 860/874] gccrs: Use keyword const values instead of raw values
[PATCH 861/874] gccrs: Use a loop label in break expression
[PATCH 862/874] gccrs: Add validation pass for label name
[PATCH 863/874] gccrs: Change error location for LoopLabel
[PATCH 864/874] gccrs: Add regression test for invalid label name
[PATCH 865/874] gccrs: Add trait context to ContextualASTVisitor
[PATCH 866/874] gccrs: Add multiple check on variadics position
[PATCH 867/874] gccrs: Add new test for invalid variadics
[PATCH 868/874] gccrs: Rework function special parameters
[PATCH 869/874] gccrs: Move templated functions to header file
[PATCH 870/874] gccrs: Move default visitor templates to header
[PATCH 871/874] gccrs: v0-mangle closures
[PATCH 872/874] gccrs: Fix float lexing and tuple index
[PATCH 873/874] gccrs: Add a new test for float disambiguation
[PATCH 874/874] gccrs: Adjust item kind enums for TupleStructItems

Best,

Arthur

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [PATCHSET] Update of GCC upstream with gccrs development repository
@ 2024-01-16 17:40 Arthur Cohen
  0 siblings, 0 replies; 2+ messages in thread
From: Arthur Cohen @ 2024-01-16 17:40 UTC (permalink / raw)
  To: gcc-patches, gcc-rust


[-- Attachment #1.1.1: Type: text/plain, Size: 57023 bytes --]

Hi everyone,

This patchset updates trunk with all of 2023's commits concerning the 
Rust GCC frontend.

We apologize for the large amount of changes - we will change our 
upstreaming process for 2024 and will update upstream on a more regular 
basis.

This patchset contains multiple improvement to our frontend. In no 
particular order, this year, we've worked on the following topics:

1. Procedural macro support, which enables users to write complex macros 
reusing the compiler's lexer and parser. This required extensive changes 
to GCC's build system, as well as the development of a binary interface 
so that the Rust frontend could perform dynamic function calls to 
external libraries during macro expansion.

2. Parser improvements, and most notably, parser relaxation! In order to 
accept more "invalid" Rust concepts, we spent a great deal of time 
making the parser accept a lot more constructs, which are then being 
rejected in a later AST Validation pass. A recent example of why this is 
needed is present in the latest stable release of Rust [1], the 
beautifully named "RPITIT" feature - "return position impl trait in traits".

Previously, our parser would fail to parse trait functions returning 
`impl Trait` values, but it now correctly errors out, mentioning that 
they are being parsed but are not valid Rust. When we eventually catch 
up to modern Rust versions, it will allow us to enable their usage only 
if a specific nightly feature is used for example.

3. Closure support
4. The beginnings of a borrow checker framework
5. Iterators
6. More patten matching
7. A new name resolution algorithm
8. Lots of cleanups
9. Derive macros, including built-in derive macros.
10. Rust error codes, which will help us attempt to pass the `rustc` 
testsuite
11. New compiler intrinsics

And a lot more. All of this work was possible thanks to our contributors:

Abdul Rafey
bl7awy
Charalampos Mitrodimas
Dave Evans
David Malcolm
Emanuele Micheletti
goar5670
Guillaume Gomez
Jakub Dupak
Jiakun Fan
liushuyu
Mahmoud Mohamed
Marc Poulhiès
Matthew Jasper
Mohammed Rizan Farooqui
Muhammad Mahad
M V V S Manoj Kumar
mxlol233
Nikos Alexandris
omkar-mohanty
Owen Avery
Parthib
Philip Herron
Pierre-Emmanuel Patry
Raiki Tamura
Sebastian Kirmayer
Sergey Bugaev
Tage Johansson
Thomas Schwinge
TieWay59
vincent
Xiao Ma
Zheyuan Chen

And thanks to the continued support of Open Source Security, inc and 
Embecosm.

We aim to bring the last missing pieces of the puzzle in order to 
compile `core` in the coming months, and we look forward to being part 
of the GCC 14.1 release.

[1]: https://blog.rust-lang.org/2023/12/28/Rust-1.75.0.html

In order to not flood everyone's inbox, all of the patches have been 
compressed into a tarball, attached to this email. Let me know if you 
would like me to send all of them on gcc-patches still.

Here is the list of patches it contains:

[PATCH 001/874] gccrs: Fix bootstrap build
[PATCH 002/874] gccrs: Fix missing build dependency
[PATCH 003/874] gccrs: Parse AltPattern
[PATCH 004/874] gccrs: Add feature gate for "rustc_attri".
[PATCH 005/874] gccrs: parser: Allow parsing of qualified type path
[PATCH 006/874] gccrs: parser: Allow `LEFT_SHIFT` to start
[PATCH 007/874] gccrs: typecheck: Refactor unify_site
[PATCH 008/874] gccrs: typecheck: Refactor coercion_site
[PATCH 009/874] gccrs: parser: Add parsing of auto traits
[PATCH 010/874] gccrs: macro_invoc_lexer: Add `split_current_token`
[PATCH 011/874] gccrs: ast: Add ExternalTypeItem node
[PATCH 012/874] gccrs: ast: Add proper visitors for ExternalTypeItem
[PATCH 013/874] gccrs: typecheck: Refactor cast_site
[PATCH 014/874] gccrs: parser: Parse `default` impl Functions and
[PATCH 015/874] gccrs: Implement and test include_str eager expansion
[PATCH 016/874] gccrs: parser: Parse external type item
[PATCH 017/874] gccrs: testsuite: Add extern type item test
[PATCH 018/874] gccrs: testsuite: Add test with missing semicolon
[PATCH 019/874] gccrs: Fix ICE in ADTType::is_concrete
[PATCH 020/874] gccrs: refactor unify commit as a static function
[PATCH 021/874] gccrs: Generic pointers are coerceable
[PATCH 022/874] gccrs: Allow infer vars on the lhs too
[PATCH 023/874] gccrs: Make coercion sites autoderef cycle optional
[PATCH 024/874] gccrs: Only emit errors during type-bounds checking
[PATCH 025/874] gccrs: autoderef unconstify so we can use in non
[PATCH 026/874] gccrs: bug-fix implicit inference checks
[PATCH 027/874] gccrs: Fix method resolution to use TryCoerce
[PATCH 028/874] gccrs: Remove cmp_autoderef_mode hack from old
[PATCH 029/874] gccrs: ast: Add RestPattern AST node
[PATCH 030/874] gccrs: Fix formatting
[PATCH 031/874] gccrs: Replace gcc_unreachable with rust_sorry_at
[PATCH 032/874] gccrs: Change struct StructPatternElements into class
[PATCH 033/874] gccrs: typecheck: Fix casting error behind generics
[PATCH 034/874] gccrs: Fix assignment operator overloads for AST and
[PATCH 035/874] gccrs: Add feature gate definition for
[PATCH 036/874] gccrs: hir: Refactor ASTLoweringStmt to source file.
[PATCH 037/874] gccrs: add {add,sub,mul}_with_overflow intrinsics
[PATCH 038/874] gccrs: parser: Fix if let parsing
[PATCH 039/874] gccrs: testsuite: Add a test for if let syntax
[PATCH 040/874] gccrs: ast: Add NodeId and clone to RestPattern
[PATCH 041/874] gccrs: parser: Add RestPattern parsing
[PATCH 042/874] gccrs: testsuite: Add a test for .. in slice patterns
[PATCH 043/874] gccrs: Add location info when opening a file fails in
[PATCH 044/874] gccrs: added support for printing HIR dump of
[PATCH 045/874] gccrs: fixup: parser: Fix bootstrap compile error
[PATCH 046/874] gccrs: parser: Add 0 sized slice pattern parsing
[PATCH 047/874] gccrs: add uninit intrinsic
[PATCH 048/874] gccrs: parser: Fix while let expr parsing
[PATCH 049/874] gccrs: parser: Fix parsing closure parameter
[PATCH 050/874] gccrs: Take advantage of our new unify_and to inject
[PATCH 051/874] gccrs: destructure parameter names.
[PATCH 052/874] gccrs: Fix missing move and copy constructors missing
[PATCH 053/874] gccrs: cleanup headers
[PATCH 054/874] gccrs: Add missing node_id copys in the copy
[PATCH 055/874] gccrs: Fix name-resolution to be permissive and carry
[PATCH 056/874] gccrs: make predicate bounds overwrite-able
[PATCH 057/874] gccrs: Resolve closure parameters without given type
[PATCH 058/874] gccrs: Cleanup and Assertion
[PATCH 059/874] gccrs: parser: Fix handling of multiple left angles
[PATCH 060/874] gccrs: Add length checking for tuple patterns
[PATCH 061/874] gccrs: expand: Add stringify macro
[PATCH 062/874] gccrs: Add AltPattern HIR node
[PATCH 063/874] gccrs: Add coherence related lang_items
[PATCH 064/874] gccrs: typecheck: Add basic typechecking for
[PATCH 065/874] gccrs: hir: add a helper function for visit
[PATCH 066/874] gccrs: fix some clang warnings
[PATCH 067/874] gccrs: hir: Fix ReferencePattern typechecking
[PATCH 068/874] gccrs: hir: Unify indentation approach with ast
[PATCH 069/874] gccrs: hir: Simplify indentation to single line
[PATCH 070/874] gccrs: enr: Fetch module items during early name
[PATCH 071/874] gccrs: hir: Provide basic handling for
[PATCH 072/874] gccrs: hir: Add ExportedMacro node and handling.
[PATCH 073/874] gccrs: HIR::AltPattern fixes
[PATCH 074/874] gccrs: Convert structs to classes
[PATCH 075/874] gccrs: Add method to access SlicePattern items
[PATCH 076/874] gccrs: Rename compiler proper
[PATCH 077/874] gccrs: hir: Improve pattern bindings handling in
[PATCH 078/874] gccrs: resolve: Handle multiple bindings to the same
[PATCH 079/874] gccrs: Add all rust keywords (except priv) to the
[PATCH 080/874] gccrs: reuse destructure code in compilation of types
[PATCH 081/874] gccrs: refactor is_concrete to not just virtual
[PATCH 082/874] gccrs: refactor TyTy::BaseType::is_unit to not use
[PATCH 083/874] gccrs: refactor monomoprhized_clone to not use
[PATCH 084/874] gccrs: group basetype virtuals together and remove
[PATCH 085/874] gccrs: tyty get rid of useless virtuals
[PATCH 086/874] gccrs: get rid of virtual dispatch for substitution
[PATCH 087/874] gccrs: cleanup header usage to decouple includes
[PATCH 088/874] gccrs: get rid of can_eq in CoerceionRules selection
[PATCH 089/874] gccrs: Remove solve_missing_mappings_from_this to
[PATCH 090/874] gccrs: add extra debug line for method resolve select
[PATCH 091/874] gccrs: Only infer when no generic arguments have been
[PATCH 092/874] gccrs: cleanup resolve method address code generation
[PATCH 093/874] gccrs: remove proxy class to use virtual method to
[PATCH 094/874] gccrs: resolve: Fix multiple bindings handling in
[PATCH 095/874] gccrs: Unify HIR::IfExprConseqIf{,Let} into
[PATCH 096/874] gccrs: Unify HIR::IfLetExprConseqIf{,Let} into
[PATCH 097/874] gccrs: resolve: Add name resolution for AltPattern
[PATCH 098/874] gccrs: Dump inner attrs for Dump::visit(BlockExpr &)
[PATCH 099/874] gccrs: add new apply_primtiive_type_hint to inference
[PATCH 100/874] gccrs: Fix bad method resolution
[PATCH 101/874] gccrs: Add move_val_init intrinsic
[PATCH 102/874] gccrs: Remove unused ResolvePattern visitor
[PATCH 103/874] gccrs: Cleanup unused headers
[PATCH 104/874] gccrs: Add name resolution and ast lowering for slice
[PATCH 105/874] gccrs: Return resolved_node_id when possible
[PATCH 106/874] gccrs: support use declaration to write the type into
[PATCH 107/874] gccrs: Fix `FeatureGate::gate` will crash on 32-bit
[PATCH 108/874] gccrs: Lower AltPattern
[PATCH 109/874] gccrs: rust-imports: Fix last few mentions of Go.
[PATCH 110/874] gccrs: ast: Dump each MacroRule properly without the
[PATCH 111/874] gccrs: Fix bad type inference
[PATCH 112/874] gccrs: Fix ICE on parsing trait object missing dyn
[PATCH 113/874] gccrs: Revert "hir: Add ExportedMacro node and
[PATCH 114/874] gccrs: mappings: Keep exported macro IDs
[PATCH 115/874] gccrs: lowering: Add lowering of exported macros
[PATCH 116/874] gccrs: expand: Move cfg-attrs related functions out
[PATCH 117/874] gccrs: expand: Add new ExpandVisitor class
[PATCH 118/874] gccrs: expand: Rename AttrVisitor -> CfgStrip
[PATCH 119/874] gccrs: Fix bad cast error to bool
[PATCH 120/874] gccrs: Remove commented out TuplePatternItemsSingle
[PATCH 121/874] gccrs: ast: Refactor rust-ast-lower-type.h to source
[PATCH 122/874] gccrs: ast: Fix location for pub(crate)
[PATCH 123/874] gccrs: resolver: Allow SimplePath to resolve to their
[PATCH 124/874] gccrs: privacy: Check for pub(crate) when resolving
[PATCH 125/874] gccrs: Fix parsing of array expressions.
[PATCH 126/874] gccrs: fix ICE when closure body is not a block
[PATCH 127/874] gccrs: libproc_macro: Add rust interface
[PATCH 128/874] gccrs: fix ICE with bad match arm type
[PATCH 129/874] gccrs: move missed testcase
[PATCH 130/874] gccrs: Add missing known attribute stable
[PATCH 131/874] gccrs: Add test to show multiple candidates for
[PATCH 132/874] gccrs: handle bare function types with no specified
[PATCH 133/874] gccrs: ast: Add conversion to token stream
[PATCH 134/874] gccrs: ast: Refactor and add some Path node visitors
[PATCH 135/874] gccrs: ast: Implement TokenStream visitor for meta
[PATCH 136/874] gccrs: ast: Add trailing comma formatting option
[PATCH 137/874] gccrs: ast: Add some expr TokenStream visitors
[PATCH 138/874] gccrs: ast: Add Tokenstream visitors for loop
[PATCH 139/874] gccrs: ast: Implement remaining expr TokenStream
[PATCH 140/874] gccrs: ast: Add ExternCrate TokenStream visitor
[PATCH 141/874] gccrs: ast: Add use declarations TokenStream visitors
[PATCH 142/874] gccrs: ast: Add Meta items TokenStream visitor
[PATCH 143/874] gccrs: ast: Add AltPattern TokenStream visitor
[PATCH 144/874] gccrs: ast: Add multiple formatting stub functions
[PATCH 145/874] gccrs: ast: Refactor SimplePath attribute name
[PATCH 146/874] gccrs: ast: Add TokenStream collect function
[PATCH 147/874] gccrs: ast: Add missing constructor implementation
[PATCH 148/874] gccrs: lex: Add source code token string
[PATCH 149/874] gccrs: session: Add tokenstream dump option
[PATCH 150/874] gccrs: token: Add type hints to string dump
[PATCH 151/874] gccrs: ast: Fix various TokenStream visitors
[PATCH 152/874] gccrs: privacy reporter should be permissive of error
[PATCH 153/874] gccrs: make distinction between error and empty for
[PATCH 154/874] gccrs: add missing name resolution to self params
[PATCH 155/874] gccrs: Fix handling of generic arguments for
[PATCH 156/874] gccrs: Fix bad cast as a char
[PATCH 157/874] gccrs: Handle "fn" and "fn_mut" lang items
[PATCH 158/874] gccrs: Fix ICE using constructors for intilizers in
[PATCH 159/874] gccrs: ast: Move rust-path implementation out of
[PATCH 160/874] gccrs: ast: Move pattern implementation out of
[PATCH 161/874] gccrs: ast: Fix tokenstream extern block statements
[PATCH 162/874] gccrs: ast: Fix match case comma output
[PATCH 163/874] gccrs: ast: Fix char literal ICE
[PATCH 164/874] gccrs: ast: Output inner attributes in tokenstreams
[PATCH 165/874] gccrs: ast: Output union's outer attributes
[PATCH 166/874] gccrs: ast: Fix attribute tokenstreams
[PATCH 167/874] gccrs: ast: Change visibility in token type
[PATCH 168/874] gccrs: ast: Visit crate inner attributes for
[PATCH 169/874] gccrs: ast: Fix macros in tokenstreams
[PATCH 170/874] gccrs: ast: Fix ICE on generic args path
[PATCH 171/874] gccrs: expand: Add derive expansion stubs
[PATCH 172/874] gccrs: expand: Add inner attribute expansion stubs
[PATCH 173/874] gccrs: ast: Add outer attribute getter to Expr class
[PATCH 174/874] gccrs: expand: Add stub function for attribute
[PATCH 175/874] gccrs: expand: Add call to outer attributes stubs
[PATCH 176/874] gccrs: expand: Add builtin attribute identification
[PATCH 177/874] gccrs: expand: Add outer attribute expansion on expr
[PATCH 178/874] gccrs: cleanup resolve method address
[PATCH 179/874] gccrs: cleanup query_compile to reuse destructure
[PATCH 180/874] gccrs: remove unused code in query_compile
[PATCH 181/874] gccrs: refactor resolve_method_address to be inside
[PATCH 182/874] gccrs: never re-setup trait item bound with a dyn
[PATCH 183/874] gccrs: Support fully qualified calls to trait items
[PATCH 184/874] gccrs: ast: Add difference between attributes
[PATCH 185/874] gccrs: Placate clang-format,
[PATCH 186/874] gccrs: Introduce AST::Visitable class for AST
[PATCH 187/874] gccrs: ast: Fix inner attribute tokenstream
[PATCH 188/874] gccrs: Unify AST::IfExprConseqIf{,Let} into
[PATCH 189/874] gccrs: Move functionality into HIR::ExprStmt from
[PATCH 190/874] gccrs: Unify HIR::ExprStmt derived class visiting
[PATCH 191/874] gccrs: Fully unify deriving classes into
[PATCH 192/874] gccrs: Handle underscore in MacroMatch.
[PATCH 193/874] gccrs: ast: Fix StructExprStruct tokenstream
[PATCH 194/874] gccrs: Unify AST::IfLetExprConseqIf{,Let} into
[PATCH 195/874] gccrs: parser: macro: reject separator in `?`
[PATCH 196/874] gccrs: Add lowering for if-let expressions
[PATCH 197/874] gccrs: ast: Make AST::Kind an enum class
[PATCH 198/874] gccrs: ast: Add AST::Kind::IDENTIFIER
[PATCH 199/874] gccrs: resolve: Add ResolveExpr::funny_error
[PATCH 200/874] gccrs: resolve: Add "break rust" Easter egg
[PATCH 201/874] gccrs: lex: Fix lifetime string representation
[PATCH 202/874] gccrs: parser: Fix attribute differentation
[PATCH 203/874] gccrs: ast: Fix tokenstream function body
[PATCH 204/874] gccrs: ast: Fix tokenstream QualifiedPathInExpression
[PATCH 205/874] gccrs: ast: Fix scope separator in tokenstreams
[PATCH 206/874] gccrs: libproc_macro: Add license headers
[PATCH 207/874] gccrs: libproc_macro: Add Literal type
[PATCH 208/874] gccrs: libproc_macro: Add literal ffi implementations
[PATCH 209/874] gccrs: libproc_macro: Drop function shall take a
[PATCH 210/874] gccrs: libproc_macro: Put literal members in
[PATCH 211/874] gccrs: libproc_macro: Add member functions to Literal
[PATCH 212/874] gccrs: Lower ErrorPropagationExpr from AST to HIR
[PATCH 213/874] gccrs: Add testcase to show matching of enum variants
[PATCH 214/874] gccrs: Implement Dump:visit() function for
[PATCH 215/874] gccrs: Add error message for AltPattern in let
[PATCH 216/874] gccrs: parser: Parse reference patterns correctly
[PATCH 217/874] gccrs: Deleted the as_string ASR and HIR dumps
[PATCH 218/874] gccrs: libproc_macro: Add ident implementation
[PATCH 219/874] gccrs: libproc_macro: Change drop rust interface
[PATCH 220/874] gccrs: libproc_macro: Add named constructor
[PATCH 221/874] gccrs: libproc_macro: Add namespace to Ident
[PATCH 222/874] gccrs: libproc_macro: Add Punct struct
[PATCH 223/874] gccrs: Fix translation mistakes 2023 in GCC/Rust
[PATCH 224/874] gccrs: libproc_macro: Add remaining tokenstream
[PATCH 225/874] gccrs: libproc_macro: Add drop function on Ident
[PATCH 226/874] gccrs: libproc_macro: Add drop function to Literal
[PATCH 227/874] gccrs: libproc_macro: Add remaining drop functions
[PATCH 228/874] gccrs: libproc_macro: Implement Drop for TokenStream
[PATCH 229/874] gccrs: libproc_macro: Fix literal drop function
[PATCH 230/874] gccrs: Resolve identifier-pattern struct pattern
[PATCH 231/874] gccrs: patterns: Add execution testcases to verify
[PATCH 232/874] gccrs: Fix memory corruption at peek_context
[PATCH 233/874] gccrs: minor refactor to reuse a variable instead of
[PATCH 234/874] gccrs: Add get_defid helper to TypeCheckContextItem
[PATCH 235/874] gccrs: add helper to check for a const or static
[PATCH 236/874] gccrs: add error state to TypeCheckContextItem and
[PATCH 237/874] gccrs: Track Self properly with TypePredicateBounds
[PATCH 238/874] gccrs: Fix ICE during method resolution
[PATCH 239/874] gccrs: Fix ICE in assignment of error type bound
[PATCH 240/874] gccrs: enable -Winfinite-recursion warnings by
[PATCH 241/874] gccrs: fix ICE with recursive function calls
[PATCH 242/874] gccrs: remove unused includes
[PATCH 243/874] gccrs: Fix ICE when we dont get a reference type
[PATCH 244/874] gccrs: remove unused header
[PATCH 245/874] gccrs: Add mechanism use pattern information to
[PATCH 246/874] gccrs: Add missing ABI mapping
[PATCH 247/874] gccrs: Add missing ABI checking on function types
[PATCH 248/874] gccrs: Fix -frust-dump-* error messages
[PATCH 249/874] gccrs: Minor tuning in AST dump
[PATCH 250/874] gccrs: Add accessors to
[PATCH 251/874] gccrs: Add missing
[PATCH 252/874] gccrs: Add missing where clause lowering for Impl
[PATCH 253/874] gccrs: resolve the associated_predicate when mapping
[PATCH 254/874] gccrs: Lower StructPatternFieldIdentPat
[PATCH 255/874] gccrs: Type check StructPatternFieldIdentPat
[PATCH 256/874] gccrs: Extract helper lookup_associated_impl_block
[PATCH 257/874] gccrs: qualified path syntax is used to disambiguate
[PATCH 258/874] gccrs: Improve operator overload check for recursive
[PATCH 259/874] gccrs: Fix infinite loop with parsing invalid generic
[PATCH 260/874] gccrs: cli: Add frust-extern option
[PATCH 261/874] gccrs: libproc_macro: Put all structures in a
[PATCH 262/874] gccrs: libproc_macro: Remove internal named
[PATCH 263/874] gccrs: libproc_macro: Build statically
[PATCH 264/874] gccrs: libproc_macro: Change proc_macro.h to main
[PATCH 265/874] gccrs: Fix out of bounds indexing while expanding
[PATCH 266/874] gccrs: Add is_expr method to AST::Stmt
[PATCH 267/874] gccrs: Handle replacing stripped tail expressions
[PATCH 268/874] gccrs: Add test from issue 1446
[PATCH 269/874] gccrs: libproc_macro: Add proc_macro interface
[PATCH 270/874] gccrs: libproc_macro: Add helpers to construct
[PATCH 271/874] gccrs: utils: Add bidirectional hashmap class
[PATCH 272/874] gccrs: builtin: Cleanup handling of builtin macros
[PATCH 273/874] gccrs: ast: Add Kind::MODULE
[PATCH 274/874] gccrs: ast: Add take_items() and set_items() methods
[PATCH 275/874] gccrs: enr: Accumulate nested escaped macros
[PATCH 276/874] gccrs: ast: Format AST code properly.
[PATCH 277/874] gccrs: Add missing compile locals for constants and
[PATCH 278/874] gccrs: Fix "default unsafe fn ..." parsing
[PATCH 279/874] gccrs: Fix ICE in check for unused global variables
[PATCH 280/874] gccrs: Redo how we handle unit types for the final
[PATCH 281/874] gccrs: we can only return unit-type when the ABI is
[PATCH 282/874] gccrs: unify how we handle DST's
[PATCH 283/874] gccrs: add missing coercion site code generation for
[PATCH 284/874] gccrs: Add missing coercion site logic to return
[PATCH 285/874] gccrs: Added HIR::InlineAsm node
[PATCH 286/874] gccrs: tokenstream: Convert group markers
[PATCH 287/874] gccrs: tokenstream: Convert single punctuation tokens
[PATCH 288/874] gccrs: tokenstream: Add joint punct token conversion
[PATCH 289/874] gccrs: tokenstream: Add tokens to Ident conversion
[PATCH 290/874] gccrs: tokenstream: Add string and byte string
[PATCH 291/874] gccrs: tokenstream: Add literal int draft conversion
[PATCH 292/874] gccrs: tokenstream: Add conversion for float literals
[PATCH 293/874] gccrs: ast: Rename TokenStream in the AST module
[PATCH 294/874] gccrs: ast: Rename rust-ast-tokenstream file
[PATCH 295/874] gccrs: ast: Rename header guard
[PATCH 296/874] gccrs: ast: Move token converter out of ast module
[PATCH 297/874] gccrs: converter: Remove redundant variable
[PATCH 298/874] gccrs: converter: Add TokenStream conversion function
[PATCH 299/874] gccrs: converter: Add group conversion implementation
[PATCH 300/874] gccrs: converter: Add from_tokentree function
[PATCH 301/874] gccrs: converter: Return a vector to const pointers
[PATCH 302/874] gccrs: converter: Const conversion to tokenstream
[PATCH 303/874] gccrs: converter: Add punct conversion function
[PATCH 304/874] gccrs: converter: Convert literals back to tokens
[PATCH 305/874] gccrs: converter: Add Ident conversions
[PATCH 306/874] gccrs: converter: Make converter input immutable
[PATCH 307/874] gccrs: converter: Fix some styling issues
[PATCH 308/874] gccrs: converter: Fix suffix condition
[PATCH 309/874] gccrs: Address invalid little-endian-only testcases
[PATCH 310/874] gccrs: Handle keywords in macro fragments
[PATCH 311/874] gccrs: ast: Remove ExprStmtWithBlock /
[PATCH 312/874] gccrs: Fix parsing of block expressions followed by
[PATCH 313/874] gccrs: Change return type of token_id_keyword_string
[PATCH 314/874] gccrs: dump: Dump `TupleIndexExpr`s
[PATCH 315/874] gccrs: Improve Optional<T&> implementation
[PATCH 316/874] gccrs: Allow hashing Optional<T>
[PATCH 317/874] gccrs: Make MacroInvocation cloning public
[PATCH 318/874] gccrs: Add AST::AttrInputMacro
[PATCH 319/874] gccrs: libproc_macro: Change rust literal internals
[PATCH 320/874] gccrs: libproc_macro: Change cpp literal
[PATCH 321/874] gccrs: converter: Merge dispatch into one function
[PATCH 322/874] gccrs: libproc_macro: Remove has_suffix attribute
[PATCH 323/874] gccrs: libproc_macro: Copy ffistring data from source
[PATCH 324/874] gccrs: libproc_macro: Change constructor in ffistring
[PATCH 325/874] gccrs: ast: Add `outer_attrs` to all `Item`s
[PATCH 326/874] gccrs: Handle keyword metavariables
[PATCH 327/874] gccrs: Improve Optional<T> implementation
[PATCH 328/874] gccrs: ast: Propagate type suffix
[PATCH 329/874] gccrs: Parse AttrInputMacro
[PATCH 330/874] gccrs: Add operator== for Optional.
[PATCH 331/874] gccrs: Only check first item of cfg_attr attribute as
[PATCH 332/874] gccrs: Fix macro resolutions in middle of multiple
[PATCH 333/874] gccrs: enr: Cleanup #[macro_use] accumulation
[PATCH 334/874] gccrs: hir: remove stray semicolon
[PATCH 335/874] gccrs: refactor resolve_method_address to be more
[PATCH 336/874] gccrs: support deref cycles to resolve to trait items
[PATCH 337/874] gccrs: Fix bounds checking to check both sides
[PATCH 338/874] gccrs: Fix handling of single fragments in
[PATCH 339/874] gccrs: Avoid invalid metavariable substitutions
[PATCH 340/874] gccrs: Add missing HIR lowering to item statements
[PATCH 341/874] gccrs: remove useless lookup to NodeId
[PATCH 342/874] gccrs: Fix missing pop of name scope at the end of
[PATCH 343/874] gccrs: remove unused header
[PATCH 344/874] gccrs: Add missing name resolution to item statements
[PATCH 345/874] gccrs: Fix cast site to not miss type-unifications
[PATCH 346/874] gccrs: Make key and key/value config options seperate
[PATCH 347/874] gccrs: expand: Add missing copyright headers
[PATCH 348/874] gccrs: ast: Add AstBuilder class.
[PATCH 349/874] gccrs: expansion: Add base for deriving builtin
[PATCH 350/874] gccrs: get rid of useless helper class and fix header
[PATCH 351/874] gccrs: Properly match delimiters
[PATCH 352/874] gccrs: libproc_macro: Add Span definition
[PATCH 353/874] gccrs: libproc_macro: Add cpp Span representation
[PATCH 354/874] gccrs: converter: Add conversion from locations to
[PATCH 355/874] gccrs: converter: Convert back Locations from spans
[PATCH 356/874] gccrs: converter: Refactor locations
[PATCH 357/874] gccrs: derive: Add #[derive(Clone)] for regular
[PATCH 358/874] gccrs: derive: Add #[derive(Copy)] builtin
[PATCH 359/874] gccrs: derive: Add proper derive(Clone) for unions
[PATCH 360/874] gccrs: derive: Add dummy builtin transcriber for
[PATCH 361/874] gccrs: ast: dump literals correctly
[PATCH 362/874] gccrs: Allow parsing a borrow from struct expression
[PATCH 363/874] gccrs: Handle crate metavariable
[PATCH 364/874] gccrs: Prevent initialization related warnings/errors
[PATCH 365/874] gccrs: Respect the concrete type when resolving
[PATCH 366/874] gccrs: Add error message when derive macro is invoked
[PATCH 367/874] gccrs: Fix non-mod-rs files' external module loading
[PATCH 368/874] gccrs: collector: Move implementation to header
[PATCH 369/874] gccrs: attributes: Add allow_internal_unstable
[PATCH 370/874] gccrs: libproc_macro: Add procmacro array definition
[PATCH 371/874] gccrs: expand: Add procmacro loading function
[PATCH 372/874] gccrs: libproc_macro: Rename Procmacro subtypes
[PATCH 373/874] gccrs: collector: Make visitors public
[PATCH 374/874] gccrs: libproc_macro: Fix capacity update in
[PATCH 375/874] gccrs: libproc_macro: Fix Tokenstream growth
[PATCH 376/874] gccrs: ast: Fix attribute collection
[PATCH 377/874] gccrs: expand: Add prc macro expander and
[PATCH 378/874] gccrs: expand: Add derive proc macro draft
[PATCH 379/874] gccrs: expand: Move derive system to new one
[PATCH 380/874] gccrs: expand: Remove proc macro fragment from
[PATCH 381/874] gccrs: expand: Add in order trait expansion
[PATCH 382/874] gccrs: expand: Expand item level attribute proc
[PATCH 383/874] gccrs: expand: Allow empty derive attribute
[PATCH 384/874] gccrs: expand: Make to_derive argument const
[PATCH 385/874] gccrs: introduce new types_compatable
[PATCH 386/874] gccrs: Remove obsolete error diagnostic
[PATCH 387/874] gccrs: Fix ICE for reference patterns in match
[PATCH 388/874] gccrs: ensure assoicated types are setup for concrete
[PATCH 389/874] gccrs: derive: Factor common fields inside the base
[PATCH 390/874] gccrs: fortify resolve_method_address to match the
[PATCH 391/874] gccrs: fixup: Remove old typecheck dump
[PATCH 392/874] gccrs: we can't check the bounds involving empty
[PATCH 393/874] gccrs: Remove direct error on macro rule
[PATCH 394/874] gccrs: Prevent invalid iterator dereference
[PATCH 395/874] gccrs: tokenize Unicode identifiers
[PATCH 396/874] gccrs: Print macro invocations in AST dump
[PATCH 397/874] gccrs: Handle tail expression normalization right
[PATCH 398/874] gccrs: Parse semicolons in more cases for statement
[PATCH 399/874] gccrs: fix unsafe lookup at zero index
[PATCH 400/874] gccrs: add new method to infer impl block type
[PATCH 401/874] gccrs: Fix generic argument tracking
[PATCH 402/874] gccrs: Apply generic arguments to the respective
[PATCH 403/874] gccrs: ErrorCode[E0433] Use of Undeclared Crate,
[PATCH 404/874] gccrs: Make MatchedFragmentContainer a tree-like
[PATCH 405/874] gccrs: expand: Derive statements
[PATCH 406/874] gccrs: expand: Add tail expr expansion
[PATCH 407/874] gccrs: expand: Convert last statement to tail expr
[PATCH 408/874] gccrs: expand: Merge arguments into one
[PATCH 409/874] gccrs: expand: Change names and document behavior
[PATCH 410/874] gccrs: Expand expressions/types correctly in more
[PATCH 411/874] gccrs: ErrorCode[E0277] Type Does Not Implement
[PATCH 412/874] gccrs: Add method selection to operator overloading
[PATCH 413/874] gccrs: Stop autoderef of raw pointer types
[PATCH 414/874] rust: Add -frust-name-resolution-2.0 option
[PATCH 415/874] gccrs: Match tokens in macros more closely
[PATCH 416/874] gccrs: gccrs:[E0026] Non-Existent Field Extraction in
[PATCH 417/874] gccrs: [E0023] Incorrect Number of Fields in Pattern
[PATCH 418/874] gccrs: Insert empty repeated metavars for nested
[PATCH 419/874] gccrs: Refactor lexer to handle UTF-8
[PATCH 420/874] gccrs: ast: Change Identifier definition
[PATCH 421/874] gccrs: ast: Add explicit default copy constructor
[PATCH 422/874] gccrs: fix tokenizing utf-8 whitespaces
[PATCH 423/874] gccrs: Add tests for Unicode identifiers
[PATCH 424/874] gccrs: dump: Remove tokenstream dump
[PATCH 425/874] gccrs: collector: Fix missing semicolon output
[PATCH 426/874] gccrs: dump: Replace ast dump internals
[PATCH 427/874] gccrs: dump: Output separating space under condition
[PATCH 428/874] gccrs: collector: Remove external container
[PATCH 429/874] gccrs: collector: Store CollectItem instead of
[PATCH 430/874] gccrs: collector: Implement formatting options
[PATCH 431/874] gccrs: dump: Add formatting to dump
[PATCH 432/874] gccrs: Track associated type generics
[PATCH 433/874] gccrs: fix how we handle coercions and casts of
[PATCH 434/874] gccrs: Improve macro repetition handling
[PATCH 435/874] gccrs: refactored field error function
[PATCH 436/874] gccrs: fix lexing byte literal
[PATCH 437/874] gccrs: parser: Propagate type hint value
[PATCH 438/874] gccrs: abi: Add testcase for using "Rust" as ABI
[PATCH 439/874] gccrs: cleanup getters to return &unique_ptr instead
[PATCH 440/874] gccrs: factor out inner attributes in a class
[PATCH 441/874] gccrs: FullVisitable abstract class
[PATCH 442/874] gccrs: Add new getters
[PATCH 443/874] gccrs: refactor: make crate.items private
[PATCH 444/874] gccrs: [E0027] struct pattern fails to specify
[PATCH 445/874] gccrs: fix ICE with inserting autoderef mappings
[PATCH 446/874] gccrs: Track fn_once output lang item properly
[PATCH 447/874] gccrs: Remove unnecessary methods of `Rust::Lexer`
[PATCH 448/874] gccrs: minor HIR interface cleanup
[PATCH 449/874] gccrs: [E0229] associated type bindings error
[PATCH 450/874] gccrs: [E0034] Ambiguous Method Call Error
[PATCH 451/874] gccrs: HIR cleanup
[PATCH 452/874] gccrs: Change class Location into typedef
[PATCH 453/874] gccrs: Add location info to `Rust::Identifier`
[PATCH 454/874] gccrs: gccrs:[E0046] Missing Items in Trait
[PATCH 455/874] gccrs: Ignore semicolon following a macro expansion
[PATCH 456/874] gccrs: add utf-8 validation for input source
[PATCH 457/874] gccrs: [E0063] constructor is missing fields
[PATCH 458/874] gccrs: [E0053] method 'x' has an incompatible type
[PATCH 459/874] gccrs: Reduce Linemap/Gcc_linemap abstraction
[PATCH 460/874] gccrs: [E0425] Use of unresolved name
[PATCH 461/874] gccrs: Reduce Linemap/Gcc_linemap abstraction further
[PATCH 462/874] gccrs: Create MacroInvocLexerBase
[PATCH 463/874] gccrs: collector: Fix some token collector
[PATCH 464/874] gccrs: dump: Fix spacing with dots and references
[PATCH 465/874] gccrs: collector: Fix method self parameter
[PATCH 466/874] gccrs: collector: Fix output for function qualifiers
[PATCH 467/874] gccrs: collector: Fix doubled generics
[PATCH 468/874] gccrs: collector: Fix trait impl block
[PATCH 469/874] gccrs: collector: Change match arm format
[PATCH 470/874] gccrs: dump: Fix dollar spacing rule
[PATCH 471/874] gccrs: collector: Add generic to inherent impl block
[PATCH 472/874] gccrs: collector: Reformat trait impl
[PATCH 473/874] gccrs: collector: Fix missing trait generics
[PATCH 474/874] gccrs: collector: Add generics to external functions
[PATCH 475/874] gccrs: collector: Add variadics to collector output
[PATCH 476/874] gccrs: collector: Output outer attributes on
[PATCH 477/874] gccrs: collector: Add where clause to trait impl
[PATCH 478/874] gccrs: collector: Fix method qualifier output
[PATCH 479/874] gccrs: collector: Output extern function attributes
[PATCH 480/874] gccrs: collector: Fix remaining trait & extern issues
[PATCH 481/874] gccrs: collector: Fix abi output
[PATCH 482/874] gccrs: Replace value initialization of Location with
[PATCH 483/874] gccrs: optional: Import tl's optional type
[PATCH 484/874] gccrs: optional: Adapt class to GCC's standards.
[PATCH 485/874] gccrs: util: Add tl::expected type
[PATCH 486/874] gccrs: expected: Adapt type to GCC's requirements.
[PATCH 487/874] gccrs: nr2.0: Add complex testcases
[PATCH 488/874] gccrs: [E0061] Refactored argument mismatch error
[PATCH 489/874] gccrs: [E0070] invalid left-hand side of assignment
[PATCH 490/874] gccrs: Replace Linemap::unknown_location with
[PATCH 491/874] gccrs: Remove Rust::Optional in favor of tl::optional
[PATCH 492/874] gccrs: Merge Gcc_linemap into Linemap
[PATCH 493/874] gccrs: Add rust_error_at accepting location_t and
[PATCH 494/874] gccrs: [E0124] field x is already declared in struct
[PATCH 495/874] gccrs: minor HIR cleanup
[PATCH 496/874] gccrs: Merge Linemap::to_string into
[PATCH 497/874] gccrs: Remove unnecessary usage of Location copy
[PATCH 498/874] gccrs: Change specifier of some forward declaration
[PATCH 499/874] gccrs: Add missing virtual destructor to interfaces
[PATCH 500/874] gccrs: remove braces around scalar initializers
[PATCH 501/874] gccrs: minor HIR cleanup
[PATCH 502/874] gccrs: dump: Output escaped character values
[PATCH 503/874] gccrs: Remove Linemap::get_location
[PATCH 504/874] gccrs: Change class RichLocation into typedef
[PATCH 505/874] gccrs: Remove Linemap::start_line
[PATCH 506/874] gccrs: Remove RichLocation typedef
[PATCH 507/874] gccrs: [E0133] Use of unsafe code outside of unsafe
[PATCH 508/874] gccrs: [E0093] Declaration of unknown intrinsic
[PATCH 509/874] gccrs: [E0658] Use of unstable feature
[PATCH 510/874] gccrs: rust-unreachable: Add specific behavior for
[PATCH 511/874] gccrs: Add include guard for rust-gcc.h
[PATCH 512/874] gccrs: Remove Linemap::predeclared_location
[PATCH 513/874] gccrs: [E0423] expected function, tuple struct or
[PATCH 514/874] gccrs: Move some Gcc_backend method definitions out
[PATCH 515/874] gccrs: Replace some usages of Location with
[PATCH 516/874] gccrs: Replace some more usages of Location with
[PATCH 517/874] gccrs: nr2.0: Add basic Rib class
[PATCH 518/874] gccrs: rework the HIR dump pass
[PATCH 519/874] gccrs: nr2.0: Add `ForeverStack` data structure.
[PATCH 520/874] gccrs: cli: Add frust-type option
[PATCH 521/874] gccrs: proc_macro: Add from string implementation
[PATCH 522/874] gccrs: libproc_macro: Change Ident structure
[PATCH 523/874] gccrs: libproc_macro: Change rust Ident definition
[PATCH 524/874] gccrs: proc macros: Add crate type attribute check
[PATCH 525/874] gccrs: proc macro: Detect malformed proc_macro_derive
[PATCH 526/874] gccrs: proc macro: Add help message to malformed
[PATCH 527/874] gccrs: proc macro: Add crate type regression tests
[PATCH 528/874] gccrs: Add a test for malformed derive declaration
[PATCH 529/874] gccrs: [E0268] break or continue used outside of loop
[PATCH 530/874] gccrs: Replace Location with location_t in gccrs
[PATCH 531/874] gccrs: Replace default argument with UNDEF_LOCATION
[PATCH 532/874] gccrs: import: Add cli extern crate resolution
[PATCH 533/874] gccrs: import: Change package opening prototypes
[PATCH 534/874] gccrs: import: Store procedural macros in extern
[PATCH 535/874] gccrs: import: Change raw pointer to unique_ptr
[PATCH 536/874] gccrs: import: Load procedural macros into external
[PATCH 537/874] gccrs: resolve: Add extern crate proc macro
[PATCH 538/874] gccrs: ast: Add manual dispatch for meta item
[PATCH 539/874] gccrs: attribute: Add missing header guard
[PATCH 540/874] gccrs: resolve: Add mappings for proc macros and
[PATCH 541/874] gccrs: resolve: Convert identifier to a SimplePath
[PATCH 542/874] gccrs: resolve: Remove ProcMacroInvocable interface
[PATCH 543/874] gccrs: Improve keyword check while parsing a macro
[PATCH 544/874] gccrs: Replace Location with location_t in parsing
[PATCH 545/874] gccrs: Replace usages of Location with location_t in
[PATCH 546/874] gccrs: Continue to replace usages of Location with
[PATCH 547/874] gccrs: proc_macro: Increase FFIString usage
[PATCH 548/874] gccrs: proc_macro: Mirror FFIString changes in
[PATCH 549/874] gccrs: [E0323] Implemented associated const, expected
[PATCH 550/874] gccrs: [E0045] Variadic Parameters Used on Non-C ABI
[PATCH 551/874] gccrs: Remove NodeId member from Identifier
[PATCH 552/874] gccrs: Emit error with proc macro on non functions
[PATCH 553/874] gccrs: Add tests for non function proc_macro
[PATCH 554/874] gccrs: Add tests for non function
[PATCH 555/874] gccrs: Add tests for non function proc_macro_derive
[PATCH 556/874] gccrs: proc macro: Add privacy check
[PATCH 557/874] gccrs: privacy: Add tests for private proc macro
[PATCH 558/874] gccrs: testsuite: Replace dg-excess-errors with
[PATCH 559/874] gccrs: testsuite: Add tests for pub items in
[PATCH 560/874] gccrs: privacy: Refactor proc macro privacy check
[PATCH 561/874] gccrs: proc_macro: Refactor attribute search
[PATCH 562/874] gccrs: proc_macro: Rename from_string callback symbol
[PATCH 563/874] gccrs: proc_macro: Add is_available callback
[PATCH 564/874] gccrs: proc_macro: Add is_available function
[PATCH 565/874] gccrs: proc_macro: Remode function indirection
[PATCH 566/874] gccrs: proc_macro: Delete unused prototype
[PATCH 567/874] gccrs: proc_macro: Remove useless typedef
[PATCH 568/874] gccrs: Replace Location with location_t in unnamed
[PATCH 569/874] gccrs: Check proc_macro attributes on non root
[PATCH 570/874] gccrs: Add multiple tests for non root proc macro
[PATCH 571/874] gccrs: New Error Code Framework
[PATCH 572/874] gccrs: Move callbacked function in a new namespace
[PATCH 573/874] gccrs: converter: Move literal conversion out
[PATCH 574/874] gccrs: proc_macro: Add literal_from_string callback
[PATCH 575/874] gccrs: [E0571] break with argument in non-loop loop
[PATCH 576/874] gccrs: Replace usages of Location with location_t in
[PATCH 577/874] gccrs: Remove Location typedef
[PATCH 578/874] gccrs: error codes: Add rust_error_codes.def,
[PATCH 579/874] gccrs: Add function for Unicode NFC normalization
[PATCH 580/874] gccrs: fix ICE when we have unimplemented/invalid
[PATCH 581/874] gccrs: Move Gcc_backend declaration to header file
[PATCH 582/874] gccrs: Track trait bound polarity properly
[PATCH 583/874] gccrs: Track polarity in type bound predicate
[PATCH 584/874] gccrs: Begin enforcing Sized properly and support
[PATCH 585/874] gccrs: fix ice when function is outside of context
[PATCH 586/874] gccrs: Add missing CHECKING_P guard to
[PATCH 587/874] gccrs: Add Unicode check for crate_name attributes
[PATCH 588/874] gccrs: Fix ICE by adding check for enum candidate's
[PATCH 589/874] gccrs: use tl::optional for macro transcribers
[PATCH 590/874] gccrs: Use MacroInvocLexerBase in MacroInvocLexer
[PATCH 591/874] gccrs: [E0572] return is outside of function context
[PATCH 592/874] gccrs: name resolution 2.0: Add base for our context
[PATCH 593/874] gccrs: top-level: Add base `TopLevel` visitor
[PATCH 594/874] gccrs: forever-stack: Use rust_assert instead of
[PATCH 595/874] gccrs: Normalize Hangul to NFC
[PATCH 596/874] gccrs: nr2.0: Add DefaultResolver visitor
[PATCH 597/874] gccrs: nr2.0: Use DefaultResolver for TopLevel
[PATCH 598/874] gccrs: better handling of incorrect file loading in
[PATCH 599/874] gccrs: [E0308] mismatch types on assignment
[PATCH 600/874] gccrs: [E0635] Use of Unknown feature.
[PATCH 601/874] gccrs: [E0426] Use of undeclared label
[PATCH 602/874] gccrs: rib2.0: Add shadowing
[PATCH 603/874] gccrs: forever stack: Add path resolution
[PATCH 604/874] gccrs: resolver: Resolve macros too.
[PATCH 605/874] gccrs: toplevel: Handle macro definitions properly
[PATCH 606/874] gccrs: nr2.0: Visit receiver/call expression and
[PATCH 607/874] gccrs: nr2.0: Add Early name resolution visitor
[PATCH 608/874] gccrs: session-manager: Run name resolution 2.0 if
[PATCH 609/874] gccrs: nr2.0: Add complex macro name resolution test
[PATCH 610/874] gccrs: ast: Add `get_kind` method to
[PATCH 611/874] gccrs: nr2.0: Add macros 2.0 in Ribs in TopLevel
[PATCH 612/874] gccrs: nr2.0: Add macros 2.0 resolution testcase.
[PATCH 613/874] gccrs: [E0107] Wrong number of generic argument
[PATCH 614/874] gccrs: [E0015] Use of non-const inside const
[PATCH 615/874] gccrs: [E0658] Unstable langauge feature
[PATCH 616/874] gccrs: Fix a warning about extra semicolon
[PATCH 617/874] gccrs: [E0412] used type name not in scope
[PATCH 618/874] gccrs: Normalize all identifier tokens
[PATCH 619/874] gccrs: Remove Backend::bool_type and
[PATCH 620/874] gccrs: Move Backend::error_variable to
[PATCH 621/874] gccrs: [E0282] type annotations needed
[PATCH 622/874] gccrs: [E0308] array misamatch types
[PATCH 623/874] gccrs: Add function `Rust::encode_punycode`
[PATCH 624/874] gccrs: Remove unneeded references to "this" in
[PATCH 625/874] gccrs: Basic formatting/comment fixes
[PATCH 626/874] gccrs: [E0703] Use of Invalid ABI
[PATCH 627/874] gccrs: [E0541] Use of unknown meta item
[PATCH 628/874] gccrs: [E0054/E0604/E0620/E0606] TypeCasting
[PATCH 629/874] gccrs: Adjust HIR dump for IfExpr and
[PATCH 630/874] gccrs: macro-expand: Keep optional references to
[PATCH 631/874] gccrs: clean up Codepoint and InputSource
[PATCH 632/874] gccrs: Use MacroInvocLexerBase in ProcMacroInvocLexer
[PATCH 633/874] gccrs: remove horrible hack in solving complex
[PATCH 634/874] gccrs: Fix legacy mangling to use Unicode escape
[PATCH 635/874] gccrs: Add missing CHECKING_P guard to
[PATCH 636/874] gccrs: Cleanup HIR dump
[PATCH 637/874] gccrs: simplify matching possible candidates
[PATCH 638/874] gccrs: improve name mangling hash
[PATCH 639/874] gccrs: Type annotation for make-unicode-data.py
[PATCH 640/874] gccrs: diagnostics: Fix mismatch between new[] and
[PATCH 641/874] gccrs: [E0534] inline attribute was malformed
[PATCH 642/874] gccrs: Support for rich-loc & errorcode in parser
[PATCH 643/874] gccrs: [E0753] Use of inner doc comment in invalid
[PATCH 644/874] gccrs: [E0380] Use of auto trait with method or
[PATCH 645/874] gccrs: [E0535] Unknown argument given to inline
[PATCH 646/874] gccrs: [E0164] Neither tuple struct nor tuple variant
[PATCH 647/874] gccrs: fix lexer exponent output on tuple indices
[PATCH 648/874] gccrs: Add a regression test for decimal lexing
[PATCH 649/874] gccrs: [E0034] found more than one items for method
[PATCH 650/874] gccrs: Non-allowed default type paramters
[PATCH 651/874] gccrs: [E0391] Detected type dependency cycle
[PATCH 652/874] gccrs: Add punycode encoding to v0 mangling
[PATCH 653/874] gccrs: Handle gengtype annotations in
[PATCH 654/874] gccrs: Remove stmt_tree and dependency on
[PATCH 655/874] gccrs: [E0573] Something other than type was used
[PATCH 656/874] gccrs: Improve byte vector to string conversion
[PATCH 657/874] gccrs: Invalid order of generic parameters
[PATCH 658/874] gccrs: Fix compilation of types which hold onto
[PATCH 659/874] gccrs: Namespace related tweaks
[PATCH 660/874] gccrs: Rename some structs to avoid ODR issues
[PATCH 661/874] gccrs: Fork c++ resorting methods
[PATCH 662/874] gccrs: [E0271] Type mismatch between associated type
[PATCH 663/874] gccrs: diagnostics: Added non-const `rich_location *`
[PATCH 664/874] gccrs: Add missing gengtype related structs
[PATCH 665/874] gccrs: [E0769] Use of tuple struct/variant in struct
[PATCH 666/874] gccrs: Handle gengtype annotations in
[PATCH 667/874] gccrs: Resolve nested macro definition
[PATCH 668/874] gccrs: Add regression test for nested macros
[PATCH 669/874] gccrs: Collect error instance instead of lambda
[PATCH 670/874] gccrs: Fix bad uninit intrinsic
[PATCH 671/874] gccrs: Fix overflow intrinsic use before init
[PATCH 672/874] gccrs: Mark uninit-intrinsic as side-effects
[PATCH 673/874] gccrs: Fix move_val_init
[PATCH 674/874] gccrs: fix bug in the iterator testcase
[PATCH 675/874] gccrs: Move type-related functions into base class
[PATCH 676/874] gccrs: Fix invalid call to vector::front in
[PATCH 677/874] gccrs: [E0658] top level or-patterns are not allowed
[PATCH 678/874] gccrs: Add check for no_mangle attribute
[PATCH 679/874] gccrs: Fix ODR violations
[PATCH 680/874] gccrs: Move label-related functions into base class
[PATCH 681/874] gccrs: Improve type checking for if expressions
[PATCH 682/874] gccrs: Move debug-related functions into base class
[PATCH 683/874] gccrs: [E0603] Use of private item outside scope
[PATCH 684/874] gccrs: Move variable-related methods into base class
[PATCH 685/874] gccrs: Move some simple expression-related methods
[PATCH 686/874] gccrs: [E0532] Pattern arm did not match expected
[PATCH 687/874] gccrs: gccrs:[E0592] methods or associated functions
[PATCH 688/874] gccrs: Move function-related methods into base class
[PATCH 689/874] gccrs: Move statement-related methods into base class
[PATCH 690/874] gccrs: Rename libproc_macro to libproc_macro_internal
[PATCH 691/874] gccrs: libproc_macro: Split c++ and rust
[PATCH 692/874] gccrs: Move block-related methods into base class
[PATCH 693/874] gccrs: Fix match-expression code-gen
[PATCH 694/874] gccrs: Make is_builtin a member function
[PATCH 695/874] gccrs: Set traits getter as member function
[PATCH 696/874] gccrs: Change trait getter to return references
[PATCH 697/874] gccrs: Ease some constraints on derive definition
[PATCH 698/874] gccrs: Parse unparsed derive tokenstreams
[PATCH 699/874] gccrs: Visit function and structure attributes
[PATCH 700/874] gccrs: Add proc macro ast representation
[PATCH 701/874] gccrs: Add proc macros abstractions to crate
[PATCH 702/874] gccrs: Add getters for different types of proc macros
[PATCH 703/874] gccrs: Change early resolver visit_attributes
[PATCH 704/874] gccrs: Add proc macro top level discovery
[PATCH 705/874] gccrs: Move proc macro definition to mappings
[PATCH 706/874] gccrs: Supress error with proc macro crates
[PATCH 707/874] gccrs: Move extern crate resolving
[PATCH 708/874] gccrs: resolver: Refactor assertion
[PATCH 709/874] gccrs: resolver: Refactor macro insertion
[PATCH 710/874] gccrs: Clarify package import procedure
[PATCH 711/874] gccrs: Move remaining expression-related methods into
[PATCH 712/874] gccrs: Remove Backend::write_export_data
[PATCH 713/874] gccrs: Use optional for proc macro invocation lookup
[PATCH 714/874] gccrs: Change proc macro definition lookup to
[PATCH 715/874] gccrs: Retrieve def for derive & attribute proc
[PATCH 716/874] gccrs: Change proc macro mapping definition insertion
[PATCH 717/874] gccrs: Add proc macro definition insertion
[PATCH 718/874] gccrs: Add missing linemap to lexer
[PATCH 719/874] gccrs: Remove Gcc_backend
[PATCH 720/874] gccrs: Unify raw attribute values
[PATCH 721/874] gccrs: Convert class Backend into namespace
[PATCH 722/874] gccrs: [E0599] Failed to resovle method
[PATCH 723/874] gccrs: privacy: Add testcase for #1260
[PATCH 724/874] gccrs: privacy: Uncomment test relying on #1257
[PATCH 725/874] gccrs: Remove unused `ctx` argument in
[PATCH 726/874] gccrs: Fix typechecking (and compilation) error for
[PATCH 727/874] gccrs: Shorten `make_unsigned_long_tree` code and
[PATCH 728/874] gccrs: Rename "rust_error_codes.def" to
[PATCH 729/874] gccrs: rust-builtins: add likely and unlikey
[PATCH 730/874] gccrs: rust-compile-intrinsic: add `copy` intrinsics
[PATCH 731/874] gccrs: Use namespace definition to simplify function
[PATCH 732/874] gccrs: Remove unused complex number support
[PATCH 733/874] gccrs: Memoize Backend::wchar_type
[PATCH 734/874] gccrs: Add intrinsics::assume
[PATCH 735/874] gccrs: trivial typo fix.
[PATCH 736/874] gccrs: Add license text to libproc_macro rust
[PATCH 737/874] gccrs: Minor typo fix
[PATCH 738/874] gccrs: Remove HIR::ForLoopExpr
[PATCH 739/874] gccrs: [E0617] attempt for invalid type variable in
[PATCH 740/874] gccrs: port over readonly_error from c-family for
[PATCH 741/874] gccrs: Add debug helper to dump HIR
[PATCH 742/874] gccrs: Fix spelling
[PATCH 743/874] gccrs: Fix CanonicalPath for inherent impl
[PATCH 744/874] gccrs: Fix ICE when emitting an error during cfg
[PATCH 745/874] gccrs: Fix type confusion in coercion
[PATCH 746/874] gccrs: Removed unnecessary comments
[PATCH 747/874] gccrs: Fix parser bug on tupplestruct pattern
[PATCH 748/874] gccrs: Add test for parser bug
[PATCH 749/874] gccrs: minor changes (typo and minor refactor)
[PATCH 750/874] gccrs: Adjust methods for TuplePatternItems to match
[PATCH 751/874] gccrs: Rename cloning methods in TupleStructItems and
[PATCH 752/874] gccrs: Initial implementation of v0 mangling
[PATCH 753/874] gccrs: Change debug log call to as_string function
[PATCH 754/874] gccrs: Fix type param bound parsing with opening
[PATCH 755/874] gccrs: Add a regression test for global path parsing
[PATCH 756/874] gccrs: TyTy: TyTy improved subclass casting and
[PATCH 757/874] gccrs: TyTy: use new subclass API
[PATCH 758/874] gccrs: Fix pub unit type parsing
[PATCH 759/874] gccrs: Add regression test
[PATCH 760/874] gccrs: Add comma for expr delimiter to fix match arms
[PATCH 761/874] gccrs: Add regression test
[PATCH 762/874] gccrs: Replace get_pattern_node_id with get_node_id
[PATCH 763/874] gccrs: Fix path expr segment parsing with generic
[PATCH 764/874] gccrs: Add a new regression test
[PATCH 765/874] gccrs: Allow call to macro named "default" at item
[PATCH 766/874] gccrs: Add a new regression test for macro call
[PATCH 767/874] gccrs: Fix RangeFromExpr parsing in for loops
[PATCH 768/874] gccrs: Add a new regression test
[PATCH 769/874] gccrs: Add new regression test
[PATCH 770/874] gccrs: Allow macro named macro_rules
[PATCH 771/874] gccrs: Add new regression test
[PATCH 772/874] gccrs: Add a new test for mbe named macro_rules
[PATCH 773/874] gccrs: Add path to macro fragment follow restrictions
[PATCH 774/874] gccrs: Add new regression test for macro matcher
[PATCH 775/874] gccrs: Break OR tokens in closure parameter list
[PATCH 776/874] gccrs: Add new test for closure in closure parsing
[PATCH 777/874] gccrs: Add tests for v0 mangling
[PATCH 778/874] gccrs: Create base class AssociatedItem
[PATCH 779/874] gccrs: ast: Parse labelled block
[PATCH 780/874] gccrs: hir: Lower labelled block
[PATCH 781/874] gccrs: resolve: Resolve labelled block
[PATCH 782/874] gccrs: typecheck: add loop ctx for labelled block
[PATCH 783/874] gccrs: compile: bail on labelled block
[PATCH 784/874] gccrs: Make lowering of AssociatedItem instances
[PATCH 785/874] gccrs: Make resolution of AssociatedItem instances
[PATCH 786/874] gccrs: hir: Refactor - avoid copy in getter
[PATCH 787/874] gccrs: ast: Handle tuplestruct pattern with indices
[PATCH 788/874] gccrs: hir: Add missing getter
[PATCH 789/874] gccrs: hir: Rename get_pattern_mappings method
[PATCH 790/874] gccrs: hir: Rename ComoundAssignment getters
[PATCH 791/874] gccrs: hir: Avoid copy in getter (PathPattern)
[PATCH 792/874] gccrs: Parse const with no value expression
[PATCH 793/874] gccrs: Add a new regression test for issue 2665
[PATCH 794/874] gccrs: Fix warning with overridden virtual methods
[PATCH 795/874] gccrs: borrowck: Add initial structure for
[PATCH 796/874] gccrs: borrowck: Add CLI option for borrowck
[PATCH 797/874] gccrs: borrowck: Execute only with CLI flag
[PATCH 798/874] gccrs: borrowck: Create Borrow-checker IR (BIR)
[PATCH 799/874] gccrs: borrowck: Create BIR builders (visitors)
[PATCH 800/874] gccrs: borrowck: BIR dump
[PATCH 801/874] gccrs: borrowck: Dump: proper comma separation
[PATCH 802/874] gccrs: borrowck: Dump: simplify cfg
[PATCH 803/874] gccrs: borrowck: Dump improve jumps
[PATCH 804/874] gccrs: borrowck: BIR: handle break
[PATCH 805/874] gccrs: borrowck: Dump: handle infinite loops
[PATCH 806/874] gccrs: borrowck: BIR continue
[PATCH 807/874] gccrs: borrowck: Make goto explicit.
[PATCH 808/874] gccrs: borrowck: Docs
[PATCH 809/874] gccrs: borrowck: Dev notes
[PATCH 810/874] gccrs: borrowck: Refactor and BIR improvements
[PATCH 811/874] gccrs: Make proc macro definition cdecl
[PATCH 812/874] gccrs: Change ABI setup and add gccrs_proc_macro attr
[PATCH 813/874] gccrs: Add const getter for tokentrees
[PATCH 814/874] gccrs: Add containers for proc macro collection
[PATCH 815/874] gccrs: Reformat comments
[PATCH 816/874] gccrs: Collect procedural macros in the crate
[PATCH 817/874] gccrs: Add getters for proc macro mappings
[PATCH 818/874] gccrs: Add utility function to build proc macro types
[PATCH 819/874] gccrs: Change proc macro entrypoint
[PATCH 820/874] gccrs: Add an explicit value to proc macro enum kind
[PATCH 821/874] gccrs: Add macro buffer global variable export
[PATCH 822/874] gccrs: Put common functions in their own namespace
[PATCH 823/874] gccrs: Add array length to the proc macro buffer
[PATCH 824/874] gccrs: Move proc macro builders to their own file
[PATCH 825/874] gccrs: Document proc macro token tree indices
[PATCH 826/874] gccrs: Compile pattern match statements into
[PATCH 827/874] gccrs: HIR: fix typo
[PATCH 828/874] gccrs: HIR: remove obsole double borrow member
[PATCH 829/874] gccrs: Fix token lexed as a float literal
[PATCH 830/874] gccrs: Add regression test for float literal tuple
[PATCH 831/874] gccrs: Add missing override specifier
[PATCH 832/874] gccrs: Move SingleASTNode implementation out of
[PATCH 833/874] gccrs: Add more checks for expr value in early
[PATCH 834/874] gccrs: Add ast validation checker
[PATCH 835/874] gccrs: Add two new steps to compile process
[PATCH 836/874] gccrs: Add call to ast validation checker
[PATCH 837/874] gccrs: Emit an error on associated const without
[PATCH 838/874] gccrs: Small fix to the ast collector visitor
[PATCH 839/874] gccrs: Add some reference getter
[PATCH 840/874] gccrs: Add a default AST visitor
[PATCH 841/874] gccrs: Add a new visitor that gathers context
[PATCH 842/874] gccrs: Make use of the Contextual visitor in
[PATCH 843/874] gccrs: Add a new test for const without body
[PATCH 844/874] gccrs: Change FunctionParam to represent variadic
[PATCH 845/874] gccrs: Parse variadic functions
[PATCH 846/874] gccrs: Add a function to check if a function is
[PATCH 847/874] gccrs: Allow variadic NamedFunctionParam
[PATCH 848/874] gccrs: Fix multiple issues with variadic
[PATCH 849/874] gccrs: Add a new regression test
[PATCH 850/874] gccrs: Parse named variadic parameters
[PATCH 851/874] gccrs: Add a new regression test for named variadics
[PATCH 852/874] gccrs: Add named variadic argument test
[PATCH 853/874] gccrs: Replace AST::Method with existing
[PATCH 854/874] gccrs: Add lifetime name validation pass
[PATCH 855/874] gccrs: Add regression test for lifetime name
[PATCH 856/874] gccrs: Add licence text and change header guard name
[PATCH 857/874] gccrs: Add new keyword utility class
[PATCH 858/874] gccrs: Replace local keyword set with the utils
[PATCH 859/874] gccrs: Change keyword set to a map
[PATCH 860/874] gccrs: Use keyword const values instead of raw values
[PATCH 861/874] gccrs: Use a loop label in break expression
[PATCH 862/874] gccrs: Add validation pass for label name
[PATCH 863/874] gccrs: Change error location for LoopLabel
[PATCH 864/874] gccrs: Add regression test for invalid label name
[PATCH 865/874] gccrs: Add trait context to ContextualASTVisitor
[PATCH 866/874] gccrs: Add multiple check on variadics position
[PATCH 867/874] gccrs: Add new test for invalid variadics
[PATCH 868/874] gccrs: Rework function special parameters
[PATCH 869/874] gccrs: Move templated functions to header file
[PATCH 870/874] gccrs: Move default visitor templates to header
[PATCH 871/874] gccrs: v0-mangle closures
[PATCH 872/874] gccrs: Fix float lexing and tuple index
[PATCH 873/874] gccrs: Add a new test for float disambiguation
[PATCH 874/874] gccrs: Adjust item kind enums for TupleStructItems

Best,

Arthur

[-- Attachment #1.1.2: 900-commit-bomb.tar.gz --]
[-- Type: application/gzip, Size: 1476778 bytes --]

[-- Attachment #1.1.3: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 3195 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 840 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-01-19 13:54 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2024-01-19 13:54 [PATCHSET] Update of GCC upstream with gccrs development repository Arthur Cohen
  -- strict thread matches above, loose matches on Subject: below --
2024-01-16 17:40 Arthur Cohen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).