Skip to content

Commit bacc7da

Browse files
authored
Merge pull request swiftlang#77742 from tshortli/always-warn-for-redundant-features-6.1
2 parents 8fe49fe + ca0ebc9 commit bacc7da

File tree

5 files changed

+28
-15
lines changed

5 files changed

+28
-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
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// swift-interface-format-version: 1.0
2+
// swift-module-flags: -enable-library-evolution -swift-version 6 -enable-experimental-feature IsolatedAny -enable-experimental-feature ImplicitOpenExistentials -enable-experimental-feature InferSendableFromCaptures -module-name Test
3+
4+
// RUN: %empty-directory(%t)
5+
// RUN: cp %s %t/Test.swiftinterface
6+
// RUN: %target-swift-frontend -compile-module-from-interface -module-name Test -o /dev/null %t/Test.swiftinterface
7+
// RUN: echo "import Test" | %target-swift-frontend -typecheck - -I %t/
8+
9+
import Swift
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
// swift-interface-format-version: 1.0
2+
// swift-module-flags: -enable-library-evolution -swift-version 6 -enable-upcoming-feature IsolatedAny -enable-upcoming-feature ImplicitOpenExistentials -enable-upcoming-feature InferSendableFromCaptures -module-name Test
3+
4+
// RUN: %empty-directory(%t)
5+
// RUN: cp %s %t/Test.swiftinterface
6+
// RUN: %target-swift-frontend -compile-module-from-interface -module-name Test -o /dev/null %t/Test.swiftinterface
7+
// RUN: echo "import Test" | %target-swift-frontend -typecheck - -I %t/
8+
9+
import Swift

0 commit comments

Comments
 (0)