diff --git a/mROA.Codegen/TestClass.cstmpl b/mROA.Codegen/TestClass.cstmpl new file mode 100644 index 0000000..f97d16c --- /dev/null +++ b/mROA.Codegen/TestClass.cstmpl @@ -0,0 +1,12 @@ +// + +namespace RPCTest.Implementation +{ + public sealed class GenerativeParametersTestClass + { + public int Increment() + { + return i + 1; + } + } +} \ No newline at end of file diff --git a/mROA.Codegen/mROA.Codegen.csproj b/mROA.Codegen/mROA.Codegen.csproj index 765f637..6ff4ac6 100644 --- a/mROA.Codegen/mROA.Codegen.csproj +++ b/mROA.Codegen/mROA.Codegen.csproj @@ -37,6 +37,7 @@ + diff --git a/mROA.Codegen/mROASourceGenerator.cs b/mROA.Codegen/mROASourceGenerator.cs index 1540a08..de1d443 100644 --- a/mROA.Codegen/mROASourceGenerator.cs +++ b/mROA.Codegen/mROASourceGenerator.cs @@ -22,7 +22,7 @@ namespace mROA.Codegen /// performance overhead. /// [Generator] - public class MRoaSourceGenerator : ISourceGenerator + public class mROAGenerator : ISourceGenerator { private static readonly Predicate ParameterFilter = i => i.Type.Name is "CancellationToken" or "RequestContext"; @@ -136,7 +136,7 @@ namespace mROA.Codegen string impl; if (propertySymbol.IsIndexer) impl = - $"public {propertySymbol.Type.ToUnityString()} this[{string.Join(", ", propertySymbol.Parameters.Select(p => p.ToDisplayString()))}] {{ {getter.Item1} {setter.Item1} }}"; + $"public {propertySymbol.Type.ToUnityString()} this[{string.Join(", ", propertySymbol.Parameters.Select(p => p.ToUnityString()))}] {{ {getter.Item1} {setter.Item1} }}"; else impl = $"public {propertySymbol.Type.ToUnityString()} {symbol.Name} {{ {getter.Item1} {setter.Item1} }}"; @@ -173,6 +173,10 @@ namespace mROA.Codegen { var coCodegenRepoCode = _methodRepoTemplate.Compile(); #if !DONT_ADD + var template = TemplateReader.FromEmbeddedResource("TestClass.cstmpl"); + template.AddDefine("param", "System.Int32 i"); + + context.AddSource("TestClass.g.cs", SourceText.From(template.Compile(), Encoding.UTF8)); context.AddSource("CoCodegenMethodRepository.g.cs", SourceText.From(coCodegenRepoCode, Encoding.UTF8)); #endif } @@ -558,9 +562,9 @@ namespace mROA.Codegen private static string ToFullString(IParameterSymbol parameter) { - return parameter.ToDisplayParts().ToUnityString(); + return parameter.Type.ToUnityString() + " " + parameter.Name; } - + private static string ToFullString(ITypeSymbol type) { return type.ToUnityString(); @@ -613,6 +617,11 @@ namespace mROA.Codegen return type.ToDisplayString(); } + public static string ToUnityString(this IParameterSymbol parameter) + { + return parameter.Type.ToUnityString() + " " + parameter.Name; + } + public static string ToUnityString(this ImmutableArray parts) { var sb = new StringBuilder();