private static bool IsAutoImplementedProperty(PropertyDeclarationSyntax propertyDeclaration) { if (propertyDeclaration.IsParentKind(SyntaxKind.InterfaceDeclaration)) { return false; } var modifierFlags = propertyDeclaration.GetModifierFlags(); if ((modifierFlags & ModifierFlags.Abstract) != 0 || (modifierFlags & ModifierFlags.Extern) != 0) { return false; } if (propertyDeclaration.AccessorList == null) { return false; } AccessorDeclarationSyntax getAccessor = null; AccessorDeclarationSyntax setAccessor = null; foreach (var accessor in propertyDeclaration.AccessorList.Accessors) { switch (accessor.Kind()) { case SyntaxKind.GetAccessorDeclaration: if (getAccessor == null) { getAccessor = accessor; } break; case SyntaxKind.SetAccessorDeclaration: if (setAccessor == null) { setAccessor = accessor; } break; } } if (getAccessor == null || setAccessor == null) { return false; } return getAccessor.Body == null && setAccessor.Body == null; }