diff --git a/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs b/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs
index c02b7def7..1896de7a5 100644
--- a/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs
+++ b/tests/generator-Tests/Unit-Tests/CodeGeneratorTests.cs
@@ -1406,69 +1406,6 @@ public void SupportedOSPlatformConstFields ()
StringAssert.Contains ("[global::System.Runtime.Versioning.SupportedOSPlatformAttribute (\"android30.0\")]", builder.ToString (), "Should contain SupportedOSPlatform!");
}
- [Test]
- public void UnsupportedOSPlatform ()
- {
- var klass = SupportTypeBuilder.CreateClass ("java.code.MyClass", options);
- klass.ApiRemovedSince = new AndroidSdkVersion (30);
-
- generator.Context.ContextTypes.Push (klass);
- generator.WriteType (klass, string.Empty, new GenerationInfo ("", "", "MyAssembly"));
- generator.Context.ContextTypes.Pop ();
-
- StringAssert.Contains ("[global::System.Runtime.Versioning.UnsupportedOSPlatformAttribute (\"android30.0\")]", builder.ToString (), "Should contain UnsupportedOSPlatform!");
- }
-
- [Test]
- public void UnsupportedOSPlatformConstFields ()
- {
- var klass = new TestClass ("java.lang.Object", "com.mypackage.foo");
- var field = new TestField ("java.lang.String", "bar").SetConstant ("MY_VALUE");
-
- field.ApiRemovedSince = new AndroidSdkVersion (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.UnsupportedOSPlatformAttribute (\"android30.0\")]", builder.ToString (), "Should contain UnsupportedOSPlatform!");
- }
-
-
- [Test]
- public void UnsupportedOSPlatformIgnoresMethodOverrides ()
- {
- // Given:
- // public class TextView {
- // public Object doThing () { ... }
- // }
- // public class TextView2 : TextView {
- // public Object doThing () { ... } // removed-since = 30
- // }
- // We should not write [UnsupportedOSPlatform] on TextView2.doThing (), because the base method isn't "removed".
- var xml = @$"
-
-
-
-
-
-
-
-
-
-
-
- ";
-
- var gens = ParseApiDefinition (xml);
- var klass = gens.Single (g => g.Name == "TextView2");
- var actual = GetGeneratedTypeOutput (klass);
-
- StringAssert.DoesNotContain ("[global::System.Runtime.Versioning.UnsupportedOSPlatformAttribute (\"android30.0\")]", actual, "Should contain UnsupportedOSPlatform!");
- }
-
[Test]
public void StringPropertyOverride ([Values ("true", "false")] string final)
{
diff --git a/tests/generator-Tests/Unit-Tests/XmlApiImporterTests.cs b/tests/generator-Tests/Unit-Tests/XmlApiImporterTests.cs
index 472be69f4..817086037 100644
--- a/tests/generator-Tests/Unit-Tests/XmlApiImporterTests.cs
+++ b/tests/generator-Tests/Unit-Tests/XmlApiImporterTests.cs
@@ -51,15 +51,6 @@ public void CreateClass_CorrectApiSinceOverridePackage ()
Assert.AreEqual (9, klass.ApiAvailableSince.ApiLevel);
}
- [Test]
- public void CreateClass_CorrectApiRemoved ()
- {
- var xml = XDocument.Parse ("");
- var klass = XmlApiImporter.CreateClass (xml.Root, xml.Root.Element ("class"), opt);
-
- Assert.AreEqual (7, klass.ApiRemovedSince.ApiLevel);
- }
-
[Test]
public void CreateCtor_EnsureValidName ()
{
diff --git a/tools/generator/ApiVersionsSupport.cs b/tools/generator/ApiVersionsSupport.cs
index d512a4027..25f339c9a 100644
--- a/tools/generator/ApiVersionsSupport.cs
+++ b/tools/generator/ApiVersionsSupport.cs
@@ -20,7 +20,6 @@ public static class ApiVersionsSupport
public interface IApiAvailability
{
AndroidSdkVersion ApiAvailableSince { get; set; }
- AndroidSdkVersion ApiRemovedSince { get; set; }
}
static IEnumerable FlattenGens (IEnumerable gens)
diff --git a/tools/generator/Java.Interop.Tools.Generator.Importers/XmlApiImporter.cs b/tools/generator/Java.Interop.Tools.Generator.Importers/XmlApiImporter.cs
index 5016f66be..952c8903c 100644
--- a/tools/generator/Java.Interop.Tools.Generator.Importers/XmlApiImporter.cs
+++ b/tools/generator/Java.Interop.Tools.Generator.Importers/XmlApiImporter.cs
@@ -159,7 +159,6 @@ public static Ctor CreateCtor (GenBase declaringType, XElement elem, CodeGenerat
var ctor = new Ctor (declaringType) {
AnnotatedVisibility = elem.XGetAttribute ("annotated-visibility"),
ApiAvailableSince = declaringType.ApiAvailableSince,
- ApiRemovedSince = declaringType.ApiRemovedSince,
CustomAttributes = elem.XGetAttribute ("customAttributes"),
Deprecated = elem.Deprecated (),
DeprecatedSince = elem.XGetAttributeAsAndroidSdkVersionOrNull ("deprecated-since"),
@@ -212,7 +211,6 @@ public static Field CreateField (GenBase declaringType, XElement elem, CodeGener
var field = new Field {
AnnotatedVisibility = elem.XGetAttribute ("annotated-visibility"),
ApiAvailableSince = declaringType.ApiAvailableSince,
- ApiRemovedSince = declaringType.ApiRemovedSince,
DeprecatedComment = elem.XGetAttribute ("deprecated"),
DeprecatedSince = elem.XGetAttributeAsAndroidSdkVersionOrNull ("deprecated-since"),
IsAcw = true,
@@ -371,7 +369,6 @@ public static Method CreateMethod (GenBase declaringType, XElement elem, CodeGen
var method = new Method (declaringType) {
AnnotatedVisibility = elem.XGetAttribute ("annotated-visibility"),
ApiAvailableSince = declaringType.ApiAvailableSince,
- ApiRemovedSince = declaringType.ApiRemovedSince,
ArgsType = elem.Attribute ("argsType")?.Value,
CustomAttributes = elem.XGetAttribute ("customAttributes"),
Deprecated = elem.Deprecated (),
@@ -518,12 +515,9 @@ static XElement GetPreviousClass (XNode n, string nameValue)
// Elements need to be passed in the above order. (package, class, member)
static void FillApiSince (ApiVersionsSupport.IApiAvailability model, params XElement[] elems)
{
- foreach (var elem in elems) {
+ foreach (var elem in elems)
if (AndroidSdkVersion.TryParse (elem.XGetAttribute ("api-since"), out var result))
model.ApiAvailableSince = result;
- if (AndroidSdkVersion.TryParse (elem.XGetAttribute ("removed-since"), out var removed))
- model.ApiRemovedSince = removed;
- }
}
static bool IsObfuscatedName (int threshold, string name)
diff --git a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/Field.cs b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/Field.cs
index 1a3f89f5b..f10f07e07 100644
--- a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/Field.cs
+++ b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/Field.cs
@@ -9,7 +9,6 @@ public class Field : ApiVersionsSupport.IApiAvailability, ISourceLineInfo
public string AnnotatedVisibility { get; set; }
public string Annotation { get; set; }
public AndroidSdkVersion ApiAvailableSince { get; set; }
- public AndroidSdkVersion ApiRemovedSince { get; set; }
public string DeprecatedComment { get; set; }
public AndroidSdkVersion? DeprecatedSince { get; set; }
public bool IsAcw { get; set; }
diff --git a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/GenBase.cs b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/GenBase.cs
index 317835581..d109a4653 100644
--- a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/GenBase.cs
+++ b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/GenBase.cs
@@ -188,8 +188,6 @@ IEnumerable Ancestors ()
public AndroidSdkVersion ApiAvailableSince { get; set; }
- public AndroidSdkVersion ApiRemovedSince { get; set; }
-
public virtual ClassGen BaseGen => null;
public GenBase BaseSymbol =>
@@ -323,11 +321,6 @@ public void FixupMethodOverrides (CodeGenerationOptions opt)
m.DeprecatedSince = bm.DeprecatedSince;
}
- // If a "removed" method overrides a "not removed" method, the method was
- // likely moved to a base class, so don't mark it as removed.
- if (m.ApiRemovedSince > 0 && bm.ApiRemovedSince == 0)
- m.ApiRemovedSince = default;
-
break;
}
}
diff --git a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/MethodBase.cs b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/MethodBase.cs
index 2a8680faa..12bd9d16f 100644
--- a/tools/generator/Java.Interop.Tools.Generator.ObjectModel/MethodBase.cs
+++ b/tools/generator/Java.Interop.Tools.Generator.ObjectModel/MethodBase.cs
@@ -16,7 +16,6 @@ protected MethodBase (GenBase declaringType)
public string AnnotatedVisibility { get; set; }
public string Annotation { get; internal set; }
public AndroidSdkVersion ApiAvailableSince { get; set; }
- public AndroidSdkVersion ApiRemovedSince { get; set; }
public string AssemblyName { get; set; }
public GenBase DeclaringType { get; }
public string Deprecated { get; set; }
diff --git a/tools/generator/SourceWriters/Attributes/UnsupportedOSPlatformAttr.cs b/tools/generator/SourceWriters/Attributes/UnsupportedOSPlatformAttr.cs
deleted file mode 100644
index b15a70cbd..000000000
--- a/tools/generator/SourceWriters/Attributes/UnsupportedOSPlatformAttr.cs
+++ /dev/null
@@ -1,26 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using System.Text;
-using System.Threading.Tasks;
-using Xamarin.SourceWriter;
-
-using Java.Interop.Tools.Generator;
-
-namespace generator.SourceWriters
-{
- public class UnsupportedOSPlatformAttr : AttributeWriter
- {
- public AndroidSdkVersion Version { get; }
-
- public UnsupportedOSPlatformAttr (AndroidSdkVersion version) => Version = version;
-
- public override void WriteAttribute (CodeWriter writer)
- {
- var apiLevel = Version.MinorRelease == 0
- ? $"{Version.ApiLevel}.0"
- : Version.ToString ();
- writer.WriteLine ($"[global::System.Runtime.Versioning.UnsupportedOSPlatformAttribute (\"android{apiLevel}\")]");
- }
- }
-}
diff --git a/tools/generator/SourceWriters/Extensions/SourceWriterExtensions.cs b/tools/generator/SourceWriters/Extensions/SourceWriterExtensions.cs
index 626eb1cb0..8d7faf4dd 100644
--- a/tools/generator/SourceWriters/Extensions/SourceWriterExtensions.cs
+++ b/tools/generator/SourceWriters/Extensions/SourceWriterExtensions.cs
@@ -308,10 +308,7 @@ public static void AddParameterListCallArgs (List body, ParameterList pa
}
public static void AddSupportedOSPlatform (List attributes, ApiVersionsSupport.IApiAvailability member, CodeGenerationOptions opt)
- {
- AddSupportedOSPlatform (attributes, member.ApiAvailableSince, opt);
- AddUnsupportedOSPlatform (attributes, member.ApiRemovedSince, opt);
- }
+ => AddSupportedOSPlatform (attributes, member.ApiAvailableSince, opt);
public static void AddSupportedOSPlatform (List attributes, AndroidSdkVersion since, CodeGenerationOptions opt)
{
@@ -321,13 +318,6 @@ public static void AddSupportedOSPlatform (List attributes, And
attributes.Add (new SupportedOSPlatformAttr (since));
}
- public static void AddUnsupportedOSPlatform (List attributes, AndroidSdkVersion since, CodeGenerationOptions opt)
- {
- // Here it makes sense to still write 'android15' because it will be missing in later versions like `android35`.
- if (since > 0 && opt.CodeGenerationTarget == CodeGenerationTarget.XAJavaInterop1)
- attributes.Add (new UnsupportedOSPlatformAttr (since));
- }
-
public static void AddObsolete (List attributes, string message, CodeGenerationOptions opt, bool forceDeprecate = false, bool isError = false, AndroidSdkVersion? deprecatedSince = null)
{
// Bail if we're not obsolete