Fix usage of IDs with wrong SemIR::File. (#6670)

Found by inspection; I haven't found a way to cause this to manifest,
and I'm not sure it's possible. Refactor slightly to make it harder for
this bug to recur.

Also make a CHECK a bit more informative. (Unrelated, but I was
investigating a failure of that CHECK when I found this.)
This commit is contained in:
Richard Smith
2026-01-29 22:25:40 +00:00
committed by GitHub
parent f64d084f27
commit 666cf7e10e
2 changed files with 12 additions and 9 deletions
+2 -2
View File
@@ -89,8 +89,8 @@ static auto GetConstantInSpecific(const File& specific_ir,
CARBON_CHECK(
specific_ir.generics().GetSelfSpecific(
specific_ir.specifics().Get(specific_id).generic_id) == specific_id,
"Queried {0} in {1} for {2} before it was resolved.", symbolic.index,
specific_id,
"Queried {0} {1} in {2} for generic {3} before it was resolved.",
symbolic.index, const_ir.insts().Get(symbolic.inst_id), specific_id,
specific_ir.insts().Get(
specific_ir.generics().Get(specific.generic_id).decl_id));
// TODO: Make sure this is the same value that we put in the self specific