From b3d42185bac625695caa28deacdbeed575d984c6 Mon Sep 17 00:00:00 2001 From: marcos henrich Date: Fri, 22 Mar 2013 20:43:24 +0000 Subject: [PATCH] Declare base type fields before value type fields --- .../Generators/CLI/CLIHeadersTemplate.cs | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/src/Generator/Generators/CLI/CLIHeadersTemplate.cs b/src/Generator/Generators/CLI/CLIHeadersTemplate.cs index ff524435..eeb355fb 100644 --- a/src/Generator/Generators/CLI/CLIHeadersTemplate.cs +++ b/src/Generator/Generators/CLI/CLIHeadersTemplate.cs @@ -277,18 +277,6 @@ namespace Cxxi.Generators.CLI if (!@class.IsValueType) return; - PushIndent(); - foreach (var field in @class.Fields) - { - if (CheckIgnoreField(@class, field)) continue; - - GenerateDeclarationCommon(field); - if (@class.IsUnion) - WriteLine("[FieldOffset({0})]", field.Offset); - WriteLine("{0} {1};", field.Type, SafeIdentifier(field.Name)); - } - PopIndent(); - // Handle the case of struct (value-type) inheritance by adding the base // fields to the managed value subtypes. foreach (var @base in @class.Bases) @@ -306,6 +294,18 @@ namespace Cxxi.Generators.CLI GenerateClassFields(baseClass); } + + PushIndent(); + foreach (var field in @class.Fields) + { + if (CheckIgnoreField(@class, field)) continue; + + GenerateDeclarationCommon(field); + if (@class.IsUnion) + WriteLine("[FieldOffset({0})]", field.Offset); + WriteLine("{0} {1};", field.Type, SafeIdentifier(field.Name)); + } + PopIndent(); } public void GenerateClassEvents(Class @class)