Skip to content

Commit 74ea3c1

Browse files
committed
[Parse] Upgrade unlabeled_parameter_following_variadic_parameter to Swift 4 error.
Part of rdar://problem/28961650 .
1 parent 04fa7ce commit 74ea3c1

File tree

2 files changed

+8
-3
lines changed

2 files changed

+8
-3
lines changed

include/swift/AST/DiagnosticsParse.def

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -851,8 +851,10 @@ ERROR(parameter_curry_syntax_removed,none,
851851
ERROR(initializer_as_typed_pattern,none,
852852
"unexpected initializer in pattern; did you mean to use '='?", ())
853853

854-
WARNING(unlabeled_parameter_following_variadic_parameter,none,
854+
WARNING(swift3_unlabeled_parameter_following_variadic_parameter,none,
855855
"a parameter following a variadic parameter requires a label", ())
856+
ERROR(unlabeled_parameter_following_variadic_parameter,none,
857+
"a parameter following a variadic parameter requires a label", ())
856858

857859
//------------------------------------------------------------------------------
858860
// Statement parsing diagnostics

lib/Parse/ParsePattern.cpp

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -439,8 +439,11 @@ mapParsedParameters(Parser &parser,
439439
// Warn when an unlabeled parameter follows a variadic parameter
440440
if (ellipsisLoc.isValid() && elements.back()->isVariadic() &&
441441
param.FirstName.empty()) {
442-
parser.diagnose(param.FirstNameLoc,
443-
diag::unlabeled_parameter_following_variadic_parameter);
442+
auto message =
443+
parser.Context.isSwiftVersion3()
444+
? diag::swift3_unlabeled_parameter_following_variadic_parameter
445+
: diag::unlabeled_parameter_following_variadic_parameter;
446+
parser.diagnose(param.FirstNameLoc, message);
444447
}
445448

446449
// If this parameter had an ellipsis, check whether it's the last parameter.

0 commit comments

Comments
 (0)