Skip to content

Commit 3442fad

Browse files
Fix #3545: Covariant return not detected for abstract override property
1 parent 3d51d8a commit 3442fad

File tree

2 files changed

+12
-1
lines changed

2 files changed

+12
-1
lines changed

ICSharpCode.Decompiler.Tests/TestCases/Pretty/CovariantReturns.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,16 @@
11
namespace ICSharpCode.Decompiler.Tests.TestCases.CovariantReturns
22
{
3+
public abstract class AbstractDerived : Base
4+
{
5+
public abstract override AbstractDerived Instance { get; }
6+
7+
public abstract override AbstractDerived this[int index] { get; }
8+
9+
public abstract override AbstractDerived Build();
10+
11+
protected abstract override AbstractDerived SetParent(object parent);
12+
}
13+
314
public abstract class Base
415
{
516
public abstract Base Instance { get; }

ICSharpCode.Decompiler/CSharp/CSharpDecompiler.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2126,7 +2126,7 @@ EntityDeclaration DoDecompile(IProperty property, DecompileRun decompileRun, ITy
21262126
{
21272127
SetNewModifier(propertyDecl);
21282128
}
2129-
if (getterHasBody && IsCovariantReturnOverride(property.Getter))
2129+
if (IsCovariantReturnOverride(property.Getter))
21302130
{
21312131
RemoveAttribute(getter, KnownAttribute.PreserveBaseOverrides);
21322132
propertyDecl.Modifiers &= ~(Modifiers.New | Modifiers.Virtual);

0 commit comments

Comments
 (0)