Add error for invalid SDKNodeKind

This commit is contained in:
Brent Royal-Gordon
2018-08-17 00:06:11 -07:00
parent ec87277e56
commit 88ac6f11a2
6 changed files with 22 additions and 9 deletions

View File

@@ -1057,7 +1057,14 @@ SDKNode* SDKNode::constructSDKNode(SDKContext &Ctx,
if (auto keyKind = parseKeyKind(keyString)) {
switch(*keyKind) {
case KeyKind::KK_kind:
Kind = parseSDKNodeKind(GetScalarString(Pair.getValue()));
if (auto parsedKind = parseSDKNodeKind(GetScalarString(Pair.getValue()))) {
Kind = *parsedKind;
} else {
auto range = convertRange(Pair.getValue()->getSourceRange());
Ctx.getDiags().diagnose(range.Start, diag::sdk_node_unrecognized_node_kind,
GetScalarString(Pair.getValue()))
.highlight(range);
}
break;
case KeyKind::KK_name:
Info.Name = GetScalarString(Pair.getValue());