Sema: Subscript default arguments

Fixes <https://bugs.swift.org/browse/SR-6118>.
This commit is contained in:
Slava Pestov
2019-04-02 01:37:56 -04:00
parent 043d76a3bf
commit 6bb36b5c01
19 changed files with 308 additions and 44 deletions

View File

@@ -92,13 +92,11 @@ static ParserStatus parseDefaultArgument(
case Parser::ParameterContextKind::Operator:
case Parser::ParameterContextKind::Initializer:
case Parser::ParameterContextKind::EnumElement:
case Parser::ParameterContextKind::Subscript:
break;
case Parser::ParameterContextKind::Closure:
diagID = diag::no_default_arg_closure;
break;
case Parser::ParameterContextKind::Subscript:
diagID = diag::no_default_arg_subscript;
break;
case Parser::ParameterContextKind::Curried:
diagID = diag::no_default_arg_curried;
break;
@@ -609,7 +607,8 @@ mapParsedParameters(Parser &parser,
assert((paramContext == Parser::ParameterContextKind::Function ||
paramContext == Parser::ParameterContextKind::Operator ||
paramContext == Parser::ParameterContextKind::Initializer ||
paramContext == Parser::ParameterContextKind::EnumElement) &&
paramContext == Parser::ParameterContextKind::EnumElement ||
paramContext == Parser::ParameterContextKind::Subscript) &&
"Default arguments are only permitted on the first param clause");
DefaultArgumentKind kind = getDefaultArgKind(param.DefaultArg);
result->setDefaultArgumentKind(kind);