Add support for trailing return types for c# generation.

This commit is contained in:
Chandler Cox
2024-10-28 22:11:47 -05:00
parent b52a520aad
commit a1c7132e48

View File

@@ -831,6 +831,7 @@ namespace Flax.Build.Bindings
}
// Read return type
// Handle if "auto" later
desc.ReturnType = ParseType(ref context);
// Read name
@@ -841,15 +842,21 @@ namespace Flax.Build.Bindings
// Read parameters
desc.Parameters.AddRange(ParseFunctionParameters(ref context));
// Read ';' or 'const' or 'override' or '= 0' or '{'
// Read ';' or 'const' or 'override' or '= 0' or '{' or '-'
while (true)
{
var token = context.Tokenizer.ExpectAnyTokens(new[] { TokenType.SemiColon, TokenType.LeftCurlyBrace, TokenType.Equal, TokenType.Identifier });
var token = context.Tokenizer.ExpectAnyTokens(new[] { TokenType.SemiColon, TokenType.LeftCurlyBrace, TokenType.Equal, TokenType.Sub, TokenType.Identifier });
if (token.Type == TokenType.Equal)
{
context.Tokenizer.SkipUntil(TokenType.SemiColon);
break;
}
// Support auto FunctionName() -> Type
else if (token.Type == TokenType.Sub && desc.ReturnType.ToString() == "auto")
{
context.Tokenizer.SkipUntil(TokenType.GreaterThan);
desc.ReturnType = ParseType(ref context);
}
else if (token.Type == TokenType.Identifier)
{
switch (token.Value)