diff --git a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CovariantReturns.cs b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CovariantReturns.cs index 11987dde5..5f2bc1da8 100644 --- a/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CovariantReturns.cs +++ b/ICSharpCode.Decompiler.Tests/TestCases/Pretty/CovariantReturns.cs @@ -1,5 +1,16 @@ namespace ICSharpCode.Decompiler.Tests.TestCases.CovariantReturns { + public abstract class AbstractDerived : Base + { + public abstract override AbstractDerived Instance { get; } + + public abstract override AbstractDerived this[int index] { get; } + + public abstract override AbstractDerived Build(); + + protected abstract override AbstractDerived SetParent(object parent); + } + public abstract class Base { public abstract Base Instance { get; } diff --git a/ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs b/ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs index 65849d73d..72ee06de2 100644 --- a/ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs +++ b/ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs @@ -2126,7 +2126,7 @@ namespace ICSharpCode.Decompiler.CSharp { SetNewModifier(propertyDecl); } - if (getterHasBody && IsCovariantReturnOverride(property.Getter)) + if (IsCovariantReturnOverride(property.Getter)) { RemoveAttribute(getter, KnownAttribute.PreserveBaseOverrides); propertyDecl.Modifiers &= ~(Modifiers.New | Modifiers.Virtual);