Skip to content

Commit aae2c3e

Browse files
Merge pull request #20440 from aschwaighofer/proper_error_message
Replace assert by proper error message
2 parents e5404fc + bfb6642 commit aae2c3e

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
@@ -3930,6 +3930,8 @@ NOTE(dynamic_replacement_found_function_of_type, none,
39303930
"found function %0 of type %1", (DeclName, Type))
39313931
ERROR(dynamic_replacement_not_in_extension, none,
39323932
"dynamicReplacement(for:) of %0 is not defined in an extension or at the file level", (DeclName))
3933+
ERROR(dynamic_replacement_must_not_be_dynamic, none,
3934+
"dynamicReplacement(for:) of %0 must not be dynamic itself", (DeclName))
39333935

39343936
//------------------------------------------------------------------------------
39353937
// MARK: @available

lib/Sema/TypeCheckAttr.cpp

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

20902090
if (D->isDynamic() && !D->isObjC()) {
2091-
assert(false && "dynamic replacement must not be dynamic itself");
2091+
diagnose(attr->getLocation(), diag::dynamic_replacement_must_not_be_dynamic,
2092+
D->getBaseName());
20922093
attr->setInvalid();
20932094
return;
20942095
}

0 commit comments

Comments
 (0)