AST: Move TypeBase::typeEraseOpenedArchetypesWithRoot() into ConstraintSystem.cpp

This commit is contained in:
Slava Pestov
2023-11-16 21:41:36 -05:00
parent 04577febf5
commit c0f9d290fa
5 changed files with 97 additions and 95 deletions

View File

@@ -5776,12 +5776,19 @@ llvm::Optional<MatchCallArgumentResult> matchCallArguments(
Expr *getArgumentLabelTargetExpr(Expr *fn);
/// Given a type that includes an existential type that has been opened to
/// the given type variable, type-erase occurrences of that opened type
/// variable and anything that depends on it to their non-dependent bounds.
/// the given type variable, replace the opened type variable and its member
/// types with their upper bounds.
Type typeEraseOpenedExistentialReference(Type type, Type existentialBaseType,
TypeVariableType *openedTypeVar,
TypePosition outermostPosition);
/// Given a type that includes opened existential archetypes derived from
/// the given generic environment, replace the archetypes with their upper
/// bounds.
Type typeEraseOpenedArchetypesWithRoot(Type type,
const OpenedArchetypeType *root);
/// Returns true if a reference to a member on a given base type will apply
/// its curried self parameter, assuming it has one.
///