Skip to content

Commit 082b49a

Browse files
committed
GSB: More accurate recursion check in GenericSignatureBuilder::resolve()
I found this by inspection. isExplicit() returns false for inferred requirements, which is probably not what we want here. Using isDerived() seems better instead.
1 parent 18df1c1 commit 082b49a

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

lib/AST/GenericSignatureBuilder.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3943,7 +3943,7 @@ auto GenericSignatureBuilder::resolve(UnresolvedType paOrT,
39433943
// Determine what kind of resolution we want.
39443944
ArchetypeResolutionKind resolutionKind =
39453945
ArchetypeResolutionKind::WellFormed;
3946-
if (!source.isExplicit() && source.isRecursive(*this))
3946+
if (source.isDerived() && source.isRecursive(*this))
39473947
resolutionKind = ArchetypeResolutionKind::AlreadyKnown;
39483948

39493949
Type type = paOrT.get<Type>();

0 commit comments

Comments
 (0)