Skip to content

Commit 39eeb13

Browse files
committed
[Type checker] Eliminate SIL parser's use of PartialGenericTypeToArchetypeResolver.
1 parent 3184d84 commit 39eeb13

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

lib/Sema/TypeCheckDecl.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -732,11 +732,18 @@ TypeChecker::handleSILGenericParams(GenericParamList *genericParams,
732732
revertGenericParamList(genericParams);
733733

734734
ArchetypeBuilder builder(*DC->getParentModule());
735+
CompleteGenericTypeResolver completeResolver(*this, builder);
735736
checkGenericParamList(&builder, genericParams, parentSig, parentEnv,
736-
nullptr);
737+
&completeResolver);
737738
parentSig = genericSig;
738739
parentEnv = builder.getGenericEnvironment(parentSig);
739740
recordArchetypeContexts(parentSig, parentEnv, DC);
741+
742+
// Compute the final set of archetypes.
743+
revertGenericParamList(genericParams);
744+
GenericTypeToArchetypeResolver archetypeResolver(parentEnv);
745+
checkGenericParamList(nullptr, genericParams, parentSig, parentEnv,
746+
&archetypeResolver);
740747
}
741748

742749
return parentEnv;

lib/Sema/TypeChecker.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -726,7 +726,7 @@ class TypeChecker final : public LazyResolver {
726726
/// \param options Options that alter type resolution.
727727
///
728728
/// \param resolver A resolver for generic types. If none is supplied, this
729-
/// routine will create a \c PartialGenericTypeToArchetypeResolver to use.
729+
/// routine will create a \c GenericTypeToArchetypeResolver to use.
730730
///
731731
/// \returns true if type validation failed, or false otherwise.
732732
bool validateType(TypeLoc &Loc, DeclContext *DC,
@@ -756,7 +756,7 @@ class TypeChecker final : public LazyResolver {
756756
/// \param options Options that alter type resolution.
757757
///
758758
/// \param resolver A resolver for generic types. If none is supplied, this
759-
/// routine will create a \c PartialGenericTypeToArchetypeResolver to use.
759+
/// routine will create a \c GenericTypeToArchetypeResolver to use.
760760
///
761761
/// \param unsatisfiedDependency When non-null, used to check whether
762762
/// dependencies have been satisfied appropriately.

0 commit comments

Comments
 (0)