提交 38a4af2a 编写于 作者: C Cyrus Najmabadi

Use switch expression

上级 ad12b7f5
......@@ -1512,21 +1512,14 @@ public override MethodKind GetAccessorKind(SyntaxNode node)
};
private static SyntaxKind GetAccessorSyntaxKind(MethodKind methodKind)
{
switch (methodKind)
=> methodKind switch
{
case MethodKind.PropertyGet:
return SyntaxKind.GetAccessorDeclaration;
case MethodKind.PropertySet:
return SyntaxKind.SetAccessorDeclaration;
case MethodKind.EventAdd:
return SyntaxKind.AddAccessorDeclaration;
case MethodKind.EventRemove:
return SyntaxKind.RemoveAccessorDeclaration;
default:
throw Exceptions.ThrowEUnexpected();
}
}
MethodKind.PropertyGet => SyntaxKind.GetAccessorDeclaration,
MethodKind.PropertySet => SyntaxKind.SetAccessorDeclaration,
MethodKind.EventAdd => SyntaxKind.AddAccessorDeclaration,
MethodKind.EventRemove => SyntaxKind.RemoveAccessorDeclaration,
_ => throw Exceptions.ThrowEUnexpected(),
};
public override bool TryGetAccessorNode(SyntaxNode parentNode, MethodKind kind, out SyntaxNode accessorNode)
{
......
......@@ -121,26 +121,14 @@ public static CodeStyleOption<T> FromXElement(XElement element)
var value = parser(valueAttribute.Value);
var severity = (DiagnosticSeverity)Enum.Parse(typeof(DiagnosticSeverity), severityAttribute.Value);
NotificationOption notificationOption;
switch (severity)
return new CodeStyleOption<T>(value, severity switch
{
case DiagnosticSeverity.Hidden:
notificationOption = NotificationOption.Silent;
break;
case DiagnosticSeverity.Info:
notificationOption = NotificationOption.Suggestion;
break;
case DiagnosticSeverity.Warning:
notificationOption = NotificationOption.Warning;
break;
case DiagnosticSeverity.Error:
notificationOption = NotificationOption.Error;
break;
default:
throw new ArgumentException(nameof(element));
}
return new CodeStyleOption<T>(value, notificationOption);
DiagnosticSeverity.Hidden => NotificationOption.Silent,
DiagnosticSeverity.Info => NotificationOption.Suggestion,
DiagnosticSeverity.Warning => NotificationOption.Warning,
DiagnosticSeverity.Error => NotificationOption.Error,
_ => throw new ArgumentException(nameof(element)),
});
}
private static Func<string, T> GetParser(string type)
......
......@@ -76,24 +76,13 @@ public static ReportDiagnostic WithDefaultSeverity(this ReportDiagnostic reportD
/// If <paramref name="diagnosticSeverity"/> is not one of the expected values.
/// </exception>
public static ReportDiagnostic ToReportDiagnostic(this DiagnosticSeverity diagnosticSeverity)
{
switch (diagnosticSeverity)
=> diagnosticSeverity switch
{
case DiagnosticSeverity.Hidden:
return ReportDiagnostic.Hidden;
case DiagnosticSeverity.Info:
return ReportDiagnostic.Info;
case DiagnosticSeverity.Warning:
return ReportDiagnostic.Warn;
case DiagnosticSeverity.Error:
return ReportDiagnostic.Error;
default:
throw ExceptionUtilities.UnexpectedValue(diagnosticSeverity);
}
}
DiagnosticSeverity.Hidden => ReportDiagnostic.Hidden,
DiagnosticSeverity.Info => ReportDiagnostic.Info,
DiagnosticSeverity.Warning => ReportDiagnostic.Warn,
DiagnosticSeverity.Error => ReportDiagnostic.Error,
_ => throw ExceptionUtilities.UnexpectedValue(diagnosticSeverity),
};
}
}
......@@ -357,22 +357,14 @@ protected override AddImportFixData ReadValue(JsonReader reader, JsonSerializer
Contract.ThrowIfFalse(reader.Read());
Contract.ThrowIfFalse(reader.TokenType == JsonToken.EndObject);
switch (kind)
return kind switch
{
case AddImportFixKind.ProjectSymbol:
return AddImportFixData.CreateForProjectSymbol(textChanges, title, tags, priority, projectReferenceToAdd);
case AddImportFixKind.MetadataSymbol:
return AddImportFixData.CreateForMetadataSymbol(textChanges, title, tags, priority, portableExecutableReferenceProjectId, portableExecutableReferenceFilePathToAdd);
case AddImportFixKind.PackageSymbol:
return AddImportFixData.CreateForPackageSymbol(textChanges, packageSource, packageName, packageVersionOpt);
case AddImportFixKind.ReferenceAssemblySymbol:
return AddImportFixData.CreateForReferenceAssemblySymbol(textChanges, title, assemblyReferenceAssemblyName, assemblyReferenceFullyQualifiedTypeName);
}
throw ExceptionUtilities.Unreachable;
AddImportFixKind.ProjectSymbol => AddImportFixData.CreateForProjectSymbol(textChanges, title, tags, priority, projectReferenceToAdd),
AddImportFixKind.MetadataSymbol => AddImportFixData.CreateForMetadataSymbol(textChanges, title, tags, priority, portableExecutableReferenceProjectId, portableExecutableReferenceFilePathToAdd),
AddImportFixKind.PackageSymbol => AddImportFixData.CreateForPackageSymbol(textChanges, packageSource, packageName, packageVersionOpt),
AddImportFixKind.ReferenceAssemblySymbol => AddImportFixData.CreateForReferenceAssemblySymbol(textChanges, title, assemblyReferenceAssemblyName, assemblyReferenceFullyQualifiedTypeName),
_ => throw ExceptionUtilities.Unreachable,
};
}
protected override void WriteValue(JsonWriter writer, AddImportFixData source, JsonSerializer serializer)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册