private TypeSyntax ParseUnderlyingType(bool allowVoid, bool parentIsParameter)
{
if (SyntaxFacts.IsPredefinedType(Current))
return ParsePredefinedType(allowVoid, parentIsParameter);
switch (Current.Kind)
{
case SyntaxKind.IdentifierToken:
return ParseName();
case SyntaxKind.StructKeyword:
return ParseStructType();
case SyntaxKind.ClassKeyword:
return ParseClassType();
case SyntaxKind.InterfaceKeyword:
return ParseInterfaceType();
default:
return WithDiagnostic(CreateMissingIdentifierName(), DiagnosticId.TypeExpected);
}
}