|
|
|
@ -445,11 +445,23 @@ namespace ICSharpCode.Decompiler.CSharp
@@ -445,11 +445,23 @@ namespace ICSharpCode.Decompiler.CSharp
|
|
|
|
|
var getter = property.Getter; |
|
|
|
|
if (!(getter != null && !property.CanSet)) |
|
|
|
|
return false; |
|
|
|
|
if (property.GetAttributes().Any()) |
|
|
|
|
return false; |
|
|
|
|
var attrs = property.GetAttributes().ToList(); |
|
|
|
|
switch (attrs.Count) |
|
|
|
|
{ |
|
|
|
|
case 0: |
|
|
|
|
// Roslyn 3.x does not emit a CompilerGeneratedAttribute on the property itself.
|
|
|
|
|
break; |
|
|
|
|
case 1: |
|
|
|
|
// Roslyn 4.4 started doing so.
|
|
|
|
|
if (!attrs[0].AttributeType.IsKnownType(KnownAttribute.CompilerGenerated)) |
|
|
|
|
return false; |
|
|
|
|
break; |
|
|
|
|
default: |
|
|
|
|
return false; |
|
|
|
|
} |
|
|
|
|
if (getter.GetReturnTypeAttributes().Any()) |
|
|
|
|
return false; |
|
|
|
|
var attrs = getter.GetAttributes().ToList(); |
|
|
|
|
attrs = getter.GetAttributes().ToList(); |
|
|
|
|
if (attrs.Count != 1) |
|
|
|
|
return false; |
|
|
|
|
if (!attrs[0].AttributeType.IsKnownType(KnownAttribute.CompilerGenerated)) |
|
|
|
|