Browse Source

Don't emit "virtual" modifier in interfaces (C# 8 default interface members).

pull/1317/head
Daniel Grunwald 7 years ago
parent
commit
21040c8bde
  1. 2
      ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs
  2. 1
      ICSharpCode.Decompiler/Documentation/IdStringProvider.cs

2
ICSharpCode.Decompiler/CSharp/Syntax/TypeSystemAstBuilder.cs

@ -1396,7 +1396,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax @@ -1396,7 +1396,7 @@ namespace ICSharpCode.Decompiler.CSharp.Syntax
m |= Modifiers.Abstract;
if (member.IsOverride)
m |= Modifiers.Override;
if (member.IsVirtual && !member.IsAbstract && !member.IsOverride)
if (member.IsVirtual && !member.IsAbstract && !member.IsOverride && declaringType.Kind != TypeKind.Interface)
m |= Modifiers.Virtual;
if (member.IsSealed)
m |= Modifiers.Sealed;

1
ICSharpCode.Decompiler/Documentation/IdStringProvider.cs

@ -352,7 +352,6 @@ namespace ICSharpCode.Decompiler.Documentation @@ -352,7 +352,6 @@ namespace ICSharpCode.Decompiler.Documentation
typeParameterCount = ReflectionHelper.ReadTypeParameterCount(typeName, ref pos);
} else if (pos < typeName.Length && typeName[pos] == '{') {
// bound generic type
typeArguments = new List<ITypeReference>();
do {
pos++;
typeArguments.Add(ParseTypeName(typeName, ref pos));

Loading…
Cancel
Save