diff --git a/tests/generator-Tests/expected.ji/NonStaticFields/NonStaticField.xml b/tests/generator-Tests/expected.ji/NonStaticFields/NonStaticField.xml index 883ce3628..20083ca1b 100644 --- a/tests/generator-Tests/expected.ji/NonStaticFields/NonStaticField.xml +++ b/tests/generator-Tests/expected.ji/NonStaticFields/NonStaticField.xml @@ -9,6 +9,8 @@ final="false" name="SomeObject" static="false" visibility="public"> + + diff --git a/tests/generator-Tests/expected.ji/NonStaticFields/Xamarin.Test.SomeObject.cs b/tests/generator-Tests/expected.ji/NonStaticFields/Xamarin.Test.SomeObject.cs index e82874ff1..ec63804a3 100644 --- a/tests/generator-Tests/expected.ji/NonStaticFields/Xamarin.Test.SomeObject.cs +++ b/tests/generator-Tests/expected.ji/NonStaticFields/Xamarin.Test.SomeObject.cs @@ -36,6 +36,44 @@ public int Value { } } + + // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='BooleanValue']" + public bool BooleanValue { + get { + const string __id = "BooleanValue.Z"; + + var __v = _members.InstanceFields.GetBooleanValue (__id, this); + return __v; + } + set { + const string __id = "BooleanValue.Z"; + + try { + _members.InstanceFields.SetValue (__id, this, value); + } finally { + } + } + } + + + // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='CharValue']" + public bool CharValue { + get { + const string __id = "CharValue.Z"; + + var __v = _members.InstanceFields.GetBooleanValue (__id, this); + return __v; + } + set { + const string __id = "CharValue.Z"; + + try { + _members.InstanceFields.SetValue (__id, this, value); + } finally { + } + } + } + static readonly JniPeerMembers _members = new JniPeerMembers ("xamarin/test/SomeObject", typeof (SomeObject)); [global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)] diff --git a/tests/generator-Tests/expected.ji/StaticFields/StaticField.xml b/tests/generator-Tests/expected.ji/StaticFields/StaticField.xml index 83e2de132..186a4660c 100644 --- a/tests/generator-Tests/expected.ji/StaticFields/StaticField.xml +++ b/tests/generator-Tests/expected.ji/StaticFields/StaticField.xml @@ -11,6 +11,8 @@ + + diff --git a/tests/generator-Tests/expected.ji/StaticFields/Xamarin.Test.SomeObject.cs b/tests/generator-Tests/expected.ji/StaticFields/Xamarin.Test.SomeObject.cs index 5b726dd25..3b0169b78 100644 --- a/tests/generator-Tests/expected.ji/StaticFields/Xamarin.Test.SomeObject.cs +++ b/tests/generator-Tests/expected.ji/StaticFields/Xamarin.Test.SomeObject.cs @@ -47,6 +47,44 @@ public static int Value2 { } } + + // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='BooleanValue']" + public static bool BooleanValue { + get { + const string __id = "BooleanValue.Z"; + + var __v = _members.StaticFields.GetBooleanValue (__id); + return __v; + } + set { + const string __id = "BooleanValue.Z"; + + try { + _members.StaticFields.SetValue (__id, value); + } finally { + } + } + } + + + // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='CharValue']" + public static bool CharValue { + get { + const string __id = "CharValue.Z"; + + var __v = _members.StaticFields.GetBooleanValue (__id); + return __v; + } + set { + const string __id = "CharValue.Z"; + + try { + _members.StaticFields.SetValue (__id, value); + } finally { + } + } + } + static readonly JniPeerMembers _members = new JniPeerMembers ("xamarin/test/SomeObject", typeof (SomeObject)); [global::System.Diagnostics.DebuggerBrowsable (global::System.Diagnostics.DebuggerBrowsableState.Never)] diff --git a/tests/generator-Tests/expected.xaji/NonStaticFields/Xamarin.Test.SomeObject.cs b/tests/generator-Tests/expected.xaji/NonStaticFields/Xamarin.Test.SomeObject.cs index 6375ec7c0..f4988e1ce 100644 --- a/tests/generator-Tests/expected.xaji/NonStaticFields/Xamarin.Test.SomeObject.cs +++ b/tests/generator-Tests/expected.xaji/NonStaticFields/Xamarin.Test.SomeObject.cs @@ -38,6 +38,46 @@ public int Value { } } + + // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='BooleanValue']" + [Register ("BooleanValue")] + public bool BooleanValue { + get { + const string __id = "BooleanValue.Z"; + + var __v = _members.InstanceFields.GetBooleanValue (__id, this); + return __v; + } + set { + const string __id = "BooleanValue.Z"; + + try { + _members.InstanceFields.SetValue (__id, this, value); + } finally { + } + } + } + + + // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='CharValue']" + [Register ("CharValue")] + public bool CharValue { + get { + const string __id = "CharValue.Z"; + + var __v = _members.InstanceFields.GetBooleanValue (__id, this); + return __v; + } + set { + const string __id = "CharValue.Z"; + + try { + _members.InstanceFields.SetValue (__id, this, value); + } finally { + } + } + } + static readonly JniPeerMembers _members = new XAPeerMembers ("xamarin/test/SomeObject", typeof (SomeObject)); internal static new IntPtr class_ref { diff --git a/tests/generator-Tests/expected.xaji/StaticFields/Xamarin.Test.SomeObject.cs b/tests/generator-Tests/expected.xaji/StaticFields/Xamarin.Test.SomeObject.cs index 57a795e04..5fd889924 100644 --- a/tests/generator-Tests/expected.xaji/StaticFields/Xamarin.Test.SomeObject.cs +++ b/tests/generator-Tests/expected.xaji/StaticFields/Xamarin.Test.SomeObject.cs @@ -50,6 +50,46 @@ public static int Value2 { } } + + // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='BooleanValue']" + [Register ("BooleanValue")] + public static bool BooleanValue { + get { + const string __id = "BooleanValue.Z"; + + var __v = _members.StaticFields.GetBooleanValue (__id); + return __v; + } + set { + const string __id = "BooleanValue.Z"; + + try { + _members.StaticFields.SetValue (__id, value); + } finally { + } + } + } + + + // Metadata.xml XPath field reference: path="/api/package[@name='xamarin.test']/class[@name='SomeObject']/field[@name='CharValue']" + [Register ("CharValue")] + public static bool CharValue { + get { + const string __id = "CharValue.Z"; + + var __v = _members.StaticFields.GetBooleanValue (__id); + return __v; + } + set { + const string __id = "CharValue.Z"; + + try { + _members.StaticFields.SetValue (__id, value); + } finally { + } + } + } + static readonly JniPeerMembers _members = new XAPeerMembers ("xamarin/test/SomeObject", typeof (SomeObject)); internal static new IntPtr class_ref { diff --git a/tools/generator/SourceWriters/BoundFieldAsProperty.cs b/tools/generator/SourceWriters/BoundFieldAsProperty.cs index 5ebe97f95..4bd7b0f7a 100644 --- a/tools/generator/SourceWriters/BoundFieldAsProperty.cs +++ b/tools/generator/SourceWriters/BoundFieldAsProperty.cs @@ -139,7 +139,10 @@ protected override void WriteSetterBody (CodeWriter writer) writer.WriteLine (prep); } - arg = field.SetParameters [0].ToNative (opt); + var param = field.SetParameters [0]; + arg = param.Symbol.OnlyFormatOnMarshal + ? opt.GetSafeIdentifier (param.Name) + : param.ToNative (opt); if (opt.CodeGenerationTarget != CodeGenerationTarget.JavaInterop1 && field.SetParameters.HasCleanup &&