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

Reply via email to