Add facet type values and an instruction that produces them (#4460)

Still to do:
* Represent facet type values in a canonical form
* Produce & consume facet type values instead of interface values
* `type` should be associated with a canonical facet type value
* Support `&` on facet type values
* Type check and enforce requirements in facet types

---------

Co-authored-by: Josh L <josh11b@users.noreply.github.com>
This commit is contained in:
josh11b
2024-11-04 21:43:55 +00:00
committed by GitHub
co-authored by Josh L
parent 607522c7de
commit ea0b0b4b48
18 changed files with 495 additions and 253 deletions
+1 -1
View File
@@ -576,7 +576,7 @@ static auto BuildTypeForInst(FileContext& context, SemIR::TupleType inst)
template <typename InstT>
requires(InstT::Kind.template IsAnyOf<
SemIR::AssociatedEntityType, SemIR::FunctionType,
SemIR::AssociatedEntityType, SemIR::FacetType, SemIR::FunctionType,
SemIR::GenericClassType, SemIR::GenericInterfaceType,
SemIR::InterfaceType, SemIR::UnboundElementType, SemIR::WhereExpr>())
static auto BuildTypeForInst(FileContext& context, InstT /*inst*/)