Skip to content

Commit d7b2d92

Browse files
committed
SE-0362: Only warn about features that are enabled by the language mode.
1 parent ec85589 commit d7b2d92

File tree

3 files changed

+10
-15
lines changed

3 files changed

+10
-15
lines changed

include/swift/AST/DiagnosticsFrontend.def

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ ERROR(error_unsupported_target_os, none,
3636
ERROR(error_unsupported_target_arch, none,
3737
"unsupported target architecture: '%0'", (StringRef))
3838

39-
ERROR(error_upcoming_feature_on_by_default, none,
39+
WARNING(warning_upcoming_feature_on_by_default, none,
4040
"upcoming feature '%0' is already enabled as of Swift version %1",
4141
(StringRef, unsigned))
4242

lib/Frontend/CompilerInvocation.cpp

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -795,13 +795,9 @@ static bool ParseEnabledFeatureArgs(LangOptions &Opts, ArgList &Args,
795795
// diagnose and skip it.
796796
if (auto firstVersion = getFeatureLanguageVersion(*feature)) {
797797
if (Opts.isSwiftVersionAtLeast(*firstVersion)) {
798-
Diags
799-
.diagnose(SourceLoc(), diag::error_upcoming_feature_on_by_default,
800-
getFeatureName(*feature), *firstVersion)
801-
.limitBehaviorIf(!enableUpcoming, DiagnosticBehavior::Warning);
802-
if (enableUpcoming)
803-
HadError = true;
804-
798+
Diags.diagnose(SourceLoc(),
799+
diag::warning_upcoming_feature_on_by_default,
800+
getFeatureName(*feature), *firstVersion);
805801
continue;
806802
}
807803
}

test/Frontend/upcoming_feature.swift

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,16 @@
3030
// RUN: %target-typecheck-verify-swift -disable-experimental-feature ConciseMagicFile -enable-experimental-feature ConciseMagicFile
3131
// RUN: %target-typecheck-verify-swift -enable-upcoming-feature ConciseMagicFile -disable-experimental-feature ConciseMagicFile -verify-additional-prefix swift5-
3232

33-
// It's not fine to provide a feature that's in the specified language version.
34-
// RUN: not %target-swift-frontend -typecheck -enable-upcoming-feature ConciseMagicFile -swift-version 6 %s 2>&1 | %FileCheck %s --check-prefix=CHECK-ERROR
35-
// RUN: %target-swift-frontend -typecheck -disable-upcoming-feature ConciseMagicFile -swift-version 6 %s 2>&1 | %FileCheck %s --check-prefix=CHECK-WARN
36-
// RUN: %target-swift-frontend -typecheck -enable-experimental-feature ConciseMagicFile -swift-version 6 %s 2>&1 | %FileCheck %s --check-prefix=CHECK-WARN
37-
// RUN: %target-swift-frontend -typecheck -disable-experimental-feature ConciseMagicFile -swift-version 6 %s 2>&1 | %FileCheck %s --check-prefix=CHECK-WARN
33+
// Warn about enabled features that are implied by the specified language version.
34+
// RUN: %target-swift-frontend -typecheck -enable-upcoming-feature ConciseMagicFile -swift-version 6 %s 2>&1 | %FileCheck %s
35+
// RUN: %target-swift-frontend -typecheck -disable-upcoming-feature ConciseMagicFile -swift-version 6 %s 2>&1 | %FileCheck %s
36+
// RUN: %target-swift-frontend -typecheck -enable-experimental-feature ConciseMagicFile -swift-version 6 %s 2>&1 | %FileCheck %s
37+
// RUN: %target-swift-frontend -typecheck -disable-experimental-feature ConciseMagicFile -swift-version 6 %s 2>&1 | %FileCheck %s
3838

3939
// REQUIRES: swift_feature_ConciseMagicFile
4040
// REQUIRES: !swift_feature_UnknownFeature
4141

42-
// CHECK-ERROR: error: upcoming feature 'ConciseMagicFile' is already enabled as of Swift version 6
43-
// CHECK-WARN: warning: upcoming feature 'ConciseMagicFile' is already enabled as of Swift version 6
42+
// CHECK: warning: upcoming feature 'ConciseMagicFile' is already enabled as of Swift version 6
4443

4544
#if hasFeature(ConciseMagicFile)
4645
let x = 0

0 commit comments

Comments
 (0)