diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs b/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs index b8b6137ac..9217999a6 100644 --- a/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs +++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs @@ -502,6 +502,31 @@ public void ExplicitInterfaceMetadata_AbstractClassProperty () // Ensure explicit interface was written Assert.True (writer.ToString ().Contains ("abstract int IHasAge.Age {"), $"was: `{writer}`"); } + + [Test] + public void ObsoleteBoundMethodAbstractDeclaration () + { + var xml = @" + + + + + + + + + "; + + var gens = ParseApiDefinition (xml); + var iface = gens.Single (g => g.Name == "MyClass"); + + generator.Context.ContextTypes.Push (iface); + generator.WriteType (iface, string.Empty, new GenerationInfo ("", "", "MyAssembly")); + generator.Context.ContextTypes.Pop (); + + // Ensure [Obsolete] was written + Assert.True (writer.ToString ().Contains ("[Obsolete (@\"This is so old!\")]"), writer.ToString ()); + } } [TestFixture] diff --git a/tools/generator/SourceWriters/BoundMethodAbstractDeclaration.cs b/tools/generator/SourceWriters/BoundMethodAbstractDeclaration.cs index 2bdde787e..67191ac09 100644 --- a/tools/generator/SourceWriters/BoundMethodAbstractDeclaration.cs +++ b/tools/generator/SourceWriters/BoundMethodAbstractDeclaration.cs @@ -53,10 +53,8 @@ public BoundMethodAbstractDeclaration (GenBase gen, Method method, CodeGeneratio if (method.DeclaringType.IsGeneratable) Comments.Add ($"// Metadata.xml XPath method reference: path=\"{method.GetMetadataXPathReference (method.DeclaringType)}\""); - // TODO: shouldn't `[Obsolete]` be added for *all* CodeGenerationTargets? - if (opt.CodeGenerationTarget == CodeGenerationTarget.JavaInterop1 && method.Deprecated.HasValue ()) { + if (method.Deprecated.HasValue ()) Attributes.Add (new ObsoleteAttr (method.Deprecated.Replace ("\"", "\"\""))); - } SourceWriterExtensions.AddSupportedOSPlatform (Attributes, method, opt);