From 10caaf4fe9e895df041b167bead10aa2958e433f Mon Sep 17 00:00:00 2001 From: Wojtek Figat Date: Mon, 2 Dec 2024 23:36:11 +0100 Subject: [PATCH] Fix parsing scripting type inheritance with generics --- .../Bindings/BindingsGenerator.Parsing.cs | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Parsing.cs b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Parsing.cs index 2aff6cd49..1fd29dfcb 100644 --- a/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Parsing.cs +++ b/Source/Tools/Flax.Build/Bindings/BindingsGenerator.Parsing.cs @@ -544,15 +544,19 @@ namespace Flax.Build.Bindings } if (token.Type == TokenType.LeftAngleBracket) { - var genericType = context.Tokenizer.ExpectToken(TokenType.Identifier); - token = context.Tokenizer.ExpectToken(TokenType.RightAngleBracket); - inheritType.GenericArgs = new List + inheritType.GenericArgs = new List(); + while (true) { - new TypeInfo - { - Type = genericType.Value, - } - }; + token = context.Tokenizer.NextToken(); + if (token.Type == TokenType.RightAngleBracket) + break; + if (token.Type == TokenType.Comma) + continue; + if (token.Type == TokenType.Identifier) + inheritType.GenericArgs.Add(new TypeInfo { Type = token.Value }); + else + throw new ParseException(ref context, "Incorrect inheritance"); + } // TODO: find better way to resolve this (custom base type attribute?) if (inheritType.Type == "ShaderAssetTypeBase")