diff --git a/Cpp2IL.Core/Model/Contexts/EventAnalysisContext.cs b/Cpp2IL.Core/Model/Contexts/EventAnalysisContext.cs index 1a2e0ace..43c9cf8c 100644 --- a/Cpp2IL.Core/Model/Contexts/EventAnalysisContext.cs +++ b/Cpp2IL.Core/Model/Contexts/EventAnalysisContext.cs @@ -24,13 +24,21 @@ public class EventAnalysisContext : HasCustomAttributesAndName, IEventInfoProvid public EventAttributes? OverrideAttributes { get; set; } - public EventAttributes Attributes => OverrideAttributes ?? DefaultAttributes; + public EventAttributes Attributes + { + get => OverrideAttributes ?? DefaultAttributes; + set => OverrideAttributes = value; + } public virtual TypeAnalysisContext DefaultEventType => DeclaringType.DeclaringAssembly.ResolveIl2CppType(Definition?.RawType) ?? throw new($"Subclasses must override {nameof(DefaultEventType)}."); public TypeAnalysisContext? OverrideEventType { get; set; } - public TypeAnalysisContext EventType => OverrideEventType ?? DefaultEventType; + public TypeAnalysisContext EventType + { + get => OverrideEventType ?? DefaultEventType; + set => OverrideEventType = value; + } public virtual bool IsStatic => Definition?.IsStatic ?? throw new($"Subclasses must override {nameof(IsStatic)}."); diff --git a/Cpp2IL.Core/Model/Contexts/FieldAnalysisContext.cs b/Cpp2IL.Core/Model/Contexts/FieldAnalysisContext.cs index c59e5c0c..dd6c22b2 100644 --- a/Cpp2IL.Core/Model/Contexts/FieldAnalysisContext.cs +++ b/Cpp2IL.Core/Model/Contexts/FieldAnalysisContext.cs @@ -35,7 +35,11 @@ public class FieldAnalysisContext : HasCustomAttributesAndName, IFieldInfoProvid public virtual FieldAttributes? OverrideAttributes { get; set; } - public FieldAttributes Attributes => OverrideAttributes ?? DefaultAttributes; + public FieldAttributes Attributes + { + get => OverrideAttributes ?? DefaultAttributes; + set => OverrideAttributes = value; + } public bool IsStatic => (Attributes & FieldAttributes.Static) != 0; @@ -43,7 +47,11 @@ public class FieldAnalysisContext : HasCustomAttributesAndName, IFieldInfoProvid public virtual object? OverrideConstantValue { get; set; } - public object? ConstantValue => OverrideConstantValue ?? DefaultConstantValue; + public object? ConstantValue + { + get => OverrideConstantValue ?? DefaultConstantValue; + set => OverrideConstantValue = value; + } public int Offset => BackingData == null ? 0 : AppContext.Binary.GetFieldOffsetFromIndex(DeclaringType.Definition!.TypeIndex, BackingData.IndexInParent, BackingData.Field.FieldIndex, DeclaringType.Definition.IsValueType, IsStatic); @@ -52,13 +60,21 @@ public class FieldAnalysisContext : HasCustomAttributesAndName, IFieldInfoProvid public TypeAnalysisContext? OverrideFieldType { get; set; } - public TypeAnalysisContext FieldType => OverrideFieldType ?? DefaultFieldType; + public TypeAnalysisContext FieldType + { + get => OverrideFieldType ?? DefaultFieldType; + set => OverrideFieldType = value; + } public virtual byte[] DefaultStaticArrayInitialValue => BackingData?.Field.StaticArrayInitialValue ?? []; public virtual byte[]? OverrideStaticArrayInitialValue { get; set; } - public byte[] StaticArrayInitialValue => OverrideStaticArrayInitialValue ?? DefaultStaticArrayInitialValue; + public byte[] StaticArrayInitialValue + { + get => OverrideStaticArrayInitialValue ?? DefaultStaticArrayInitialValue; + set => OverrideStaticArrayInitialValue = value; + } public FieldAttributes Visibility { @@ -68,7 +84,7 @@ public FieldAttributes Visibility } set { - OverrideAttributes = (Attributes & ~FieldAttributes.FieldAccessMask) | (value & FieldAttributes.FieldAccessMask); + Attributes = (Attributes & ~FieldAttributes.FieldAccessMask) | (value & FieldAttributes.FieldAccessMask); } } diff --git a/Cpp2IL.Core/Model/Contexts/GenericParameterTypeAnalysisContext.cs b/Cpp2IL.Core/Model/Contexts/GenericParameterTypeAnalysisContext.cs index 8f52a9ab..3a850ad7 100644 --- a/Cpp2IL.Core/Model/Contexts/GenericParameterTypeAnalysisContext.cs +++ b/Cpp2IL.Core/Model/Contexts/GenericParameterTypeAnalysisContext.cs @@ -22,7 +22,11 @@ public class GenericParameterTypeAnalysisContext : ReferencedTypeAnalysisContext public new GenericParameterAttributes DefaultAttributes { get; } public new GenericParameterAttributes? OverrideAttributes { get; set; } - public new GenericParameterAttributes Attributes => OverrideAttributes ?? DefaultAttributes; + public new GenericParameterAttributes Attributes + { + get => OverrideAttributes ?? DefaultAttributes; + set => OverrideAttributes = value; + } private List? _constraintTypes; public List ConstraintTypes diff --git a/Cpp2IL.Core/Model/Contexts/HasCustomAttributesAndName.cs b/Cpp2IL.Core/Model/Contexts/HasCustomAttributesAndName.cs index 9cabf972..94c13afc 100644 --- a/Cpp2IL.Core/Model/Contexts/HasCustomAttributesAndName.cs +++ b/Cpp2IL.Core/Model/Contexts/HasCustomAttributesAndName.cs @@ -7,5 +7,9 @@ public abstract class HasCustomAttributesAndName(uint token, ApplicationAnalysis public virtual string? OverrideName { get; set; } - public string Name => OverrideName ?? DefaultName; + public string Name + { + get => OverrideName ?? DefaultName; + set => OverrideName = value; + } } diff --git a/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs b/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs index e20e75a7..e2930934 100644 --- a/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs +++ b/Cpp2IL.Core/Model/Contexts/MethodAnalysisContext.cs @@ -78,13 +78,21 @@ public class MethodAnalysisContext : HasGenericParameters, IMethodInfoProvider public virtual MethodAttributes? OverrideAttributes { get; set; } - public MethodAttributes Attributes => OverrideAttributes ?? DefaultAttributes; + public MethodAttributes Attributes + { + get => OverrideAttributes ?? DefaultAttributes; + set => OverrideAttributes = value; + } public virtual MethodImplAttributes DefaultImplAttributes => Definition?.MethodImplAttributes ?? throw new($"Subclasses of MethodAnalysisContext should override {nameof(DefaultImplAttributes)}"); public virtual MethodImplAttributes? OverrideImplAttributes { get; set; } - public MethodImplAttributes ImplAttributes => OverrideImplAttributes ?? DefaultImplAttributes; + public MethodImplAttributes ImplAttributes + { + get => OverrideImplAttributes ?? DefaultImplAttributes; + set => OverrideImplAttributes = value; + } public MethodAttributes Visibility { @@ -94,7 +102,7 @@ public MethodAttributes Visibility } set { - OverrideAttributes = (Attributes & ~MethodAttributes.MemberAccessMask) | (value & MethodAttributes.MemberAccessMask); + Attributes = (Attributes & ~MethodAttributes.MemberAccessMask) | (value & MethodAttributes.MemberAccessMask); } } @@ -116,7 +124,11 @@ public override List GenericParameters public TypeAnalysisContext? OverrideReturnType { get; set; } //TODO Support custom attributes on return types (v31 feature) - public TypeAnalysisContext ReturnType => OverrideReturnType ?? DefaultReturnType; + public TypeAnalysisContext ReturnType + { + get => OverrideReturnType ?? DefaultReturnType; + set => OverrideReturnType = value; + } protected Memory? rawMethodBody; diff --git a/Cpp2IL.Core/Model/Contexts/ParameterAnalysisContext.cs b/Cpp2IL.Core/Model/Contexts/ParameterAnalysisContext.cs index b1b4d479..60521e1a 100644 --- a/Cpp2IL.Core/Model/Contexts/ParameterAnalysisContext.cs +++ b/Cpp2IL.Core/Model/Contexts/ParameterAnalysisContext.cs @@ -44,7 +44,11 @@ public class ParameterAnalysisContext : HasCustomAttributesAndName, IParameterIn /// /// The ParameterAttributes of this parameter. /// - public ParameterAttributes Attributes => OverrideAttributes ?? DefaultAttributes; + public ParameterAttributes Attributes + { + get => OverrideAttributes ?? DefaultAttributes; + set => OverrideAttributes = value; + } /// /// True if this parameter is passed by reference. @@ -60,7 +64,11 @@ public class ParameterAnalysisContext : HasCustomAttributesAndName, IParameterIn public TypeAnalysisContext? OverrideParameterType { get; set; } - public virtual TypeAnalysisContext ParameterType => OverrideParameterType ?? DefaultParameterType; + public TypeAnalysisContext ParameterType + { + get => OverrideParameterType ?? DefaultParameterType; + set => OverrideParameterType = value; + } public ParameterAnalysisContext(Il2CppParameterDefinition? definition, int parameterIndex, MethodAnalysisContext declaringMethod) : base(definition?.token ?? 0, declaringMethod.AppContext) { diff --git a/Cpp2IL.Core/Model/Contexts/PropertyAnalysisContext.cs b/Cpp2IL.Core/Model/Contexts/PropertyAnalysisContext.cs index 1a38ee9c..d0e400d3 100644 --- a/Cpp2IL.Core/Model/Contexts/PropertyAnalysisContext.cs +++ b/Cpp2IL.Core/Model/Contexts/PropertyAnalysisContext.cs @@ -26,14 +26,22 @@ public class PropertyAnalysisContext : HasCustomAttributesAndName, IPropertyInfo public PropertyAttributes? OverrideAttributes { get; set; } - public PropertyAttributes Attributes => OverrideAttributes ?? DefaultAttributes; + public PropertyAttributes Attributes + { + get => OverrideAttributes ?? DefaultAttributes; + set => OverrideAttributes = value; + } public virtual TypeAnalysisContext DefaultPropertyType => DeclaringType.DeclaringAssembly.ResolveIl2CppType(Definition?.RawPropertyType) ?? throw new($"Subclasses must override {nameof(DefaultPropertyType)}."); public TypeAnalysisContext? OverridePropertyType { get; set; } - public TypeAnalysisContext PropertyType => OverridePropertyType ?? DefaultPropertyType; + public TypeAnalysisContext PropertyType + { + get => OverridePropertyType ?? DefaultPropertyType; + set => OverridePropertyType = value; + } public PropertyAnalysisContext(Il2CppPropertyDefinition definition, TypeAnalysisContext parent) : base(definition.token, parent.AppContext) { diff --git a/Cpp2IL.Core/Model/Contexts/TypeAnalysisContext.cs b/Cpp2IL.Core/Model/Contexts/TypeAnalysisContext.cs index 1bb0e9ff..5f83c970 100644 --- a/Cpp2IL.Core/Model/Contexts/TypeAnalysisContext.cs +++ b/Cpp2IL.Core/Model/Contexts/TypeAnalysisContext.cs @@ -63,19 +63,31 @@ public class TypeAnalysisContext : HasGenericParameters, ITypeInfoProvider, ICSh public string? OverrideNamespace { get; set; } - public string Namespace => OverrideNamespace ?? DefaultNamespace; + public string Namespace + { + get => OverrideNamespace ?? DefaultNamespace; + set => OverrideNamespace = value; + } public virtual TypeAttributes DefaultAttributes => Definition?.Attributes ?? TypeAttributes.Public | TypeAttributes.Class | TypeAttributes.Sealed; public virtual TypeAttributes? OverrideAttributes { get; set; } - public TypeAttributes Attributes => OverrideAttributes ?? DefaultAttributes; + public TypeAttributes Attributes + { + get => OverrideAttributes ?? DefaultAttributes; + set => OverrideAttributes = value; + } public virtual TypeAnalysisContext? DefaultBaseType => Definition == null ? null : DeclaringAssembly.ResolveIl2CppType(Definition.RawBaseType); public TypeAnalysisContext? OverrideBaseType { get; set; } - public TypeAnalysisContext? BaseType => OverrideBaseType ?? DefaultBaseType; + public TypeAnalysisContext? BaseType + { + get => OverrideBaseType ?? DefaultBaseType; + set => OverrideBaseType = value; + } public TypeAnalysisContext? DeclaringType { get; protected internal set; } @@ -156,7 +168,7 @@ public TypeAttributes Visibility } set { - OverrideAttributes = (Attributes & ~TypeAttributes.VisibilityMask) | (value & TypeAttributes.VisibilityMask); + Attributes = (Attributes & ~TypeAttributes.VisibilityMask) | (value & TypeAttributes.VisibilityMask); } }