Hi Jakub,

Thanks for the lexer patch. We're investigating the other issue and will fix it shortly.

Best,

Arthur

On 11/27/25 11:53 AM, Jakub Jelinek wrote:
On Thu, Nov 27, 2025 at 11:16:06AM +0100, Andreas Schwab wrote:
There are more errors:

../../gcc/rust/lex/rust-lex.cc:2665:51: error: character not encodable in a 
single code unit
  2665 |               0xfe0f /* VARIATION SELECTOR-16 */, u'🦀'};
       |                                                   ^~~~~

Oops, consider that changed from u'🦀' to U'🦀' in my copy.

/opt/gcc/gcc-20251127/Build/prev-aarch64-suse-linux/libstdc++-v3/include/bits/stl_vector.h:1109:51:
 error: invalid use of incomplete type ‘class Rust::TyTy::TypeBoundPredicate’
  1109 |         ptrdiff_t __dif = this->_M_impl._M_finish - 
this->_M_impl._M_start;
       |                           
~~~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~

This is something I'll defer to the Rust maintainers, I really have no idea
why they forward declare std::vector<TypeBoundPredicate> for an incomplete
type.
Fixing that requires some major reshufling of the
typecheck/rust-tyty-bounds.h
typecheck/rust-tyty-subst.h
typecheck/rust-tyty.h
headers, likely defining TyTy::SubstitutionArg and TyTy::TypeBoundPredicate
in rust-tyty-bounds.h and forward declaring anything they need in
rust-tyty-bounds.h or so.  I'm really surprised vectors of incomplete worked
fine in C++ <= 17, but most likely with less constexpr stuff one could get
away with it.

        Jakub


Attachment: OpenPGP_0x1B3465B044AD9C65.asc
Description: OpenPGP public key

Attachment: OpenPGP_signature.asc
Description: OpenPGP digital signature

Reply via email to