mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 22:02:23 +01:00
To avoid bouncing through `constant_values()` to determine whether a type is symbolic or template, store the `ConstantId` on the `TypeInfo` not just the `InstId`. In addition to propagating the symbolic / template phase, this also propagates whether a type contains an error, resulting in our no longer producing types such as `<error>*` -- these now evaluate to simply `<error>`. While this makes our types less precise after an error, it also removes some follow-on diagnostics, so it seems to be an improvement on the whole.