Skip to content

Commit 7e86212

Browse files
committed
[Typechecker] Add a comment to isOverrideBasedOnType() to explain why we return false when generic signatures differ
1 parent bb29238 commit 7e86212

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

lib/Sema/TypeCheckDeclOverride.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,12 @@ bool swift::isOverrideBasedOnType(ValueDecl *decl, Type declTy,
170170
if (declIUOAttr != parentDeclIUOAttr)
171171
return false;
172172

173+
// If the generic signatures don't match, then return false because we don't
174+
// want to complain if an overridden method matches multiple superclass
175+
// methods which differ in generic signature.
176+
//
177+
// We can still succeed with a subtype match later in
178+
// OverrideMatcher::match().
173179
auto declGenericCtx = decl->getAsGenericContext();
174180
auto &ctx = decl->getASTContext();
175181
auto sig = ctx.getOverrideGenericSignature(parentDecl, decl);

0 commit comments

Comments
 (0)