Add support for trailing return types for c# generation.
This commit is contained in:
@@ -831,6 +831,7 @@ namespace Flax.Build.Bindings
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Read return type
|
// Read return type
|
||||||
|
// Handle if "auto" later
|
||||||
desc.ReturnType = ParseType(ref context);
|
desc.ReturnType = ParseType(ref context);
|
||||||
|
|
||||||
// Read name
|
// Read name
|
||||||
@@ -841,15 +842,21 @@ namespace Flax.Build.Bindings
|
|||||||
// Read parameters
|
// Read parameters
|
||||||
desc.Parameters.AddRange(ParseFunctionParameters(ref context));
|
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)
|
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)
|
if (token.Type == TokenType.Equal)
|
||||||
{
|
{
|
||||||
context.Tokenizer.SkipUntil(TokenType.SemiColon);
|
context.Tokenizer.SkipUntil(TokenType.SemiColon);
|
||||||
break;
|
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)
|
else if (token.Type == TokenType.Identifier)
|
||||||
{
|
{
|
||||||
switch (token.Value)
|
switch (token.Value)
|
||||||
|
|||||||
Reference in New Issue
Block a user