Closed
Description
In general, we have been trying to remove hard-coded vectors and boxes from the chalk-ir APIs, and moving them instead to Interner
associated types. See the chalk book for more background on the Interner
trait and its design.
This issue tracks the removal of the final vectors etc:
-
Vec<ProgramClause<I>>
inEnvironment
-- introduceProgramClauses
-- done in Intern Vec<ProgramClause<I>> #370 -
Vec<QuantifiedWhereClause<I>>
inDyTy
-- introduceQuantifiedWhereClauses
-- done in InternVec<QuantifiedWhereClause<I>>
. #379 -
Vec<Parameter>
inFn
(this should be changed toSubstitution
) -- done in extend chalkTypeName
with builtin types #368 -
Vec<ParameterKind<()>>
inBinders
,BindersIntoIterator
-- introduceParameterKinds
-- MigrateVec<ParameterKinds<()>>
andVec<ParameterKinds<UniverseIndex>>
to interned #386 -
Vec<ParameterKind<Universe>>
inCanonical
-- hmm, this one requires a bit of thought, because I think we want to reconcile other bits of canonicalization -- MigrateVec<ParameterKinds<()>>
andVec<ParameterKinds<UniverseIndex>>
to interned #386
Here are some example PRs showing how this removal can be done:
- intern "substitutions" #316 converted a
Vec<Parameter>
into theSubstitution<I>
type - Goals and folding goals #325 replaced
Vec<Goal<I>>
withGoals<I>
This issue has been assigned to @crlf0710 via this comment.