]> git.ipfire.org Git - thirdparty/gcc.git/commit
gccrs: simplify cloning of types during unify
authorPhilip Herron <herron.philip@googlemail.com>
Fri, 29 Aug 2025 16:42:10 +0000 (17:42 +0100)
committerArthur Cohen <arthur.cohen@embecosm.com>
Thu, 30 Oct 2025 19:58:57 +0000 (20:58 +0100)
commitc33c14446fb9baacc50e8a980e8938fcfb8ac6f4
tree41436bc967fd3881b035ee46b8efb7adf06e07df
parent83df8ca5020c7d7fb753d92052a972ed56e37e09
gccrs: simplify cloning of types during unify

We should only clone when we commit and it was successful. With no
cloning there is a regression in min specialization 2. Probably because
it needs to know the unify site hirid and ensure we have it set there.

gcc/rust/ChangeLog:

* typecheck/rust-unify.cc (UnifyRules::Resolve): check for success
(UnifyRules::expect_inference_variable): dont clone
(UnifyRules::expect_adt): likewise
(UnifyRules::expect_str): likewise
(UnifyRules::expect_reference): likewise
(UnifyRules::expect_pointer): likewise
(UnifyRules::expect_param): likewise
(UnifyRules::expect_array): likewise
(UnifyRules::expect_slice): likewise
(UnifyRules::expect_fndef): likewise
(UnifyRules::expect_fnptr): likewise
(UnifyRules::expect_tuple): likewise
(UnifyRules::expect_bool): likewise
(UnifyRules::expect_char): likewise
(UnifyRules::expect_int): likewise
(UnifyRules::expect_uint): likewise
(UnifyRules::expect_float): likewise
(UnifyRules::expect_isize): likewise
(UnifyRules::expect_usize): likewise
(UnifyRules::expect_never): likewise
(UnifyRules::expect_placeholder): likewise
(UnifyRules::expect_projection): likewise
(UnifyRules::expect_dyn): likewise
(UnifyRules::expect_closure): likewise

Signed-off-by: Philip Herron <herron.philip@googlemail.com>
gcc/rust/typecheck/rust-unify.cc