diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs b/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs index bbb9724c2..79f8e17ac 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs @@ -736,6 +736,24 @@ public void SupportedOSPlatform () StringAssert.Contains ("[global::System.Runtime.Versioning.SupportedOSPlatformAttribute (\"android30.0\")]", builder.ToString (), "Should contain SupportedOSPlatform!"); } + + [Test] + public void SupportedOSPlatformConstFields () + { + // Ensure we write [SupportedOSPlatform] for const fields + var klass = new TestClass ("java.lang.Object", "com.mypackage.foo"); + var field = new TestField ("java.lang.String", "bar").SetConstant ("MY_VALUE"); + + field.ApiAvailableSince = 30; + + klass.Fields.Add (field); + + generator.Context.ContextTypes.Push (klass); + generator.WriteType (klass, string.Empty, new GenerationInfo ("", "", "MyAssembly")); + generator.Context.ContextTypes.Pop (); + + StringAssert.Contains ("[global::System.Runtime.Versioning.SupportedOSPlatformAttribute (\"android30.0\")]", builder.ToString (), "Should contain SupportedOSPlatform!"); + } } [TestFixture] diff --git a/tools/generator/SourceWriters/BoundField.cs b/tools/generator/SourceWriters/BoundField.cs index 620c3134a..259bdbc94 100644 --- a/tools/generator/SourceWriters/BoundField.cs +++ b/tools/generator/SourceWriters/BoundField.cs @@ -31,6 +31,7 @@ public BoundField (GenBase type, Field field, CodeGenerationOptions opt) if (field.IsEnumified) Attributes.Add (new GeneratedEnumAttr ()); + SourceWriterExtensions.AddSupportedOSPlatform (Attributes, field, opt); SourceWriterExtensions.AddObsolete (Attributes, field.DeprecatedComment, opt, field.IsDeprecated, isError: field.IsDeprecatedError, deprecatedSince: field.DeprecatedSince); if (field.Annotation.HasValue ())