From 3f1508ecabd80b8d3efbc76002daca77f4001d73 Mon Sep 17 00:00:00 2001 From: Katy Coe Date: Sat, 30 Nov 2019 07:27:58 +0100 Subject: [PATCH] Output: Indexers must have getter and setter bodies (CS0501) --- Il2CppDumper/Il2CppCSharpDumper.cs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/Il2CppDumper/Il2CppCSharpDumper.cs b/Il2CppDumper/Il2CppCSharpDumper.cs index 083be94..67d2ccd 100644 --- a/Il2CppDumper/Il2CppCSharpDumper.cs +++ b/Il2CppDumper/Il2CppCSharpDumper.cs @@ -260,19 +260,25 @@ namespace Il2CppInspector sb.Append($"{prefix}\t{primary.GetModifierString()}{prop.PropertyType.GetScopedCSharpName(scope)} "); // Non-indexer + var getBody = ";"; + var setBody = ";"; if ((!prop.CanRead || !prop.GetMethod.DeclaredParameters.Any()) && (!prop.CanWrite || prop.SetMethod.DeclaredParameters.Count == 1)) sb.Append($"{prop.CSharpName} {{ "); + // Indexer - else - sb.Append("this[" + string.Join(", ", primary.DeclaredParameters.SkipLast(getAccess >= setAccess? 0 : 1) + else { + sb.Append("this[" + string.Join(", ", primary.DeclaredParameters.SkipLast(getAccess >= setAccess ? 0 : 1) .Select(p => p.GetParameterString(scope, !SuppressMetadata, MustCompile))) + "] { "); + getBody = " => default;"; + setBody = " {}"; + } sb.Append((prop.CanRead? prop.GetMethod.CustomAttributes.Where(a => !MustCompile || a.AttributeType.FullName != CGAttribute) .ToString(scope, inline: true, emitPointer: !SuppressMetadata, mustCompile: MustCompile) - + (getAccess < setAccess? prop.GetMethod.GetAccessModifierString() : "") + "get; " : "") + + (getAccess < setAccess? prop.GetMethod.GetAccessModifierString() : "") + $"get{getBody} " : "") + (prop.CanWrite? prop.SetMethod.CustomAttributes.Where(a => !MustCompile || a.AttributeType.FullName != CGAttribute) .ToString(scope, inline: true, emitPointer: !SuppressMetadata, mustCompile: MustCompile) - + (setAccess < getAccess? prop.SetMethod.GetAccessModifierString() : "") + "set; " : "") + "}"); + + (setAccess < getAccess? prop.SetMethod.GetAccessModifierString() : "") + $"set{setBody} " : "") + "}"); if (!SuppressMetadata) { if ((prop.CanRead && prop.GetMethod.VirtualAddress != null) || (prop.CanWrite && prop.SetMethod.VirtualAddress != null)) sb.Append(" // ");