Skip to content

Commit e4ac7ae

Browse files
authored
Merge pull request swiftlang#36052 from bnbarham/workaround-invalid-decl
[Serialization] Only diagnose invalid declarations when allowing errors
2 parents 1c2b80f + 5d72df3 commit e4ac7ae

File tree

2 files changed

+2
-8
lines changed

2 files changed

+2
-8
lines changed

include/swift/AST/DiagnosticsSema.def

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -779,9 +779,6 @@ NOTE(serialization_compatibility_version_mismatch,none,
779779
ERROR(serialization_allowing_invalid_decl,none,
780780
"allowing deserialization of invalid declaration %0 from module '%1'",
781781
(DeclName, StringRef))
782-
ERROR(serialization_invalid_decl,Fatal,
783-
"invalid declaration %0 read from module '%1'; "
784-
SWIFT_BUG_REPORT_MESSAGE, ())
785782

786783
ERROR(reserved_member_name,none,
787784
"type member must not be named %0, since it would conflict with the"

lib/Serialization/Deserialization.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4085,11 +4085,8 @@ ModuleFile::getDeclChecked(
40854085
return deserialized;
40864086

40874087
auto *decl = declOrOffset.get();
4088-
if (decl->isInvalid()) {
4089-
if (!isAllowModuleWithCompilerErrorsEnabled()) {
4090-
getContext().Diags.diagnose(SourceLoc(),
4091-
diag::serialization_invalid_decl);
4092-
} else if (!isa<ParamDecl>(decl) && !decl->isImplicit()) {
4088+
if (isAllowModuleWithCompilerErrorsEnabled() && decl->isInvalid()) {
4089+
if (!isa<ParamDecl>(decl) && !decl->isImplicit()) {
40934090
// The parent function will be invalid if the parameter is invalid,
40944091
// implicits should have an invalid explicit as well
40954092
if (auto *VD = dyn_cast<ValueDecl>(decl)) {

0 commit comments

Comments
 (0)