Skip to content

Commit bfb6642

Browse files
committed
Replace assert by proper error message
1 parent 6a15b26 commit bfb6642

File tree

2 files changed

+5
-2
lines changed

2 files changed

+5
-2
lines changed

include/swift/AST/DiagnosticsSema.def

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3918,6 +3918,8 @@ NOTE(dynamic_replacement_found_function_of_type, none,
39183918
"found function %0 of type %1", (DeclName, Type))
39193919
ERROR(dynamic_replacement_not_in_extension, none,
39203920
"dynamicReplacement(for:) of %0 is not defined in an extension or at the file level", (DeclName))
3921+
ERROR(dynamic_replacement_must_not_be_dynamic, none,
3922+
"dynamicReplacement(for:) of %0 must not be dynamic itself", (DeclName))
39213923

39223924
//------------------------------------------------------------------------------
39233925
// MARK: @available

lib/Sema/TypeCheckAttr.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2080,13 +2080,14 @@ void TypeChecker::checkDynamicReplacementAttribute(ValueDecl *D) {
20802080
if (!isa<ExtensionDecl>(D->getDeclContext()) &&
20812081
!D->getDeclContext()->isModuleScopeContext()) {
20822082
diagnose(attr->getLocation(), diag::dynamic_replacement_not_in_extension,
2083-
D->getBaseName());
2083+
D->getBaseName());
20842084
attr->setInvalid();
20852085
return;
20862086
}
20872087

20882088
if (D->isDynamic() && !D->isObjC()) {
2089-
assert(false && "dynamic replacement must not be dynamic itself");
2089+
diagnose(attr->getLocation(), diag::dynamic_replacement_must_not_be_dynamic,
2090+
D->getBaseName());
20902091
attr->setInvalid();
20912092
return;
20922093
}

0 commit comments

Comments
 (0)