Skip to content

Commit 7d8d275

Browse files
author
Brian King
committed
Only generate a warning in swift 3
1 parent 7dcab12 commit 7d8d275

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

include/swift/AST/DiagnosticsSema.def

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1706,6 +1706,9 @@ ERROR(override_ownership_mismatch,none,
17061706
ERROR(override_class_declaration_in_extension,none,
17071707
"cannot override a non-dynamic class declaration from an extension.",
17081708
())
1709+
WARNING(override_class_declaration_in_extension_warning,none,
1710+
"cannot override a non-dynamic class declaration from an extension.",
1711+
())
17091712
ERROR(override_throws,none,
17101713
"cannot override non-throwing %select{method|initializer}0 with "
17111714
"throwing %select{method|initializer}0", (bool))

lib/Sema/TypeCheckDecl.cpp

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6082,7 +6082,10 @@ class DeclChecker : public DeclVisitor<DeclChecker> {
60826082
if (baseDecl->hasKnownSwiftImplementation() &&
60836083
!base->isDynamic() &&
60846084
override->getDeclContext()->isExtensionContext()) {
6085-
TC.diagnose(override, diag::override_class_declaration_in_extension);
6085+
// For compatibility, only generate a warning in Swift 3
6086+
TC.diagnose(override, (TC.Context.isSwiftVersion3()
6087+
? diag::override_class_declaration_in_extension_warning
6088+
: diag::override_class_declaration_in_extension));
60866089
TC.diagnose(base, diag::overridden_here);
60876090
}
60886091
}

0 commit comments

Comments
 (0)