Example #1
0
 bool CheckVisibility(FieldDeclarationSyntax baseFieldFieldDeclaration, AccessorDeclarationSyntax getNode, AccessorDeclarationSyntax setNode, PropertyDeclarationSyntax propertyDeclaration)
 {
     if (baseFieldFieldDeclaration.IsPrivate())
     {
         return(true);
     }
     else
     {
         if (baseFieldFieldDeclaration.IsPublic())
         {
             if (propertyDeclaration.IsPublic() == false)
             {
                 return(false);
             }
             if (getNode.Modifiers.Any())
             {
                 return(false);
             }
             if (setNode.Modifiers.Any())
             {
                 return(false);
             }
         }
         else if (baseFieldFieldDeclaration.IsProtected())
         {
             if (propertyDeclaration.IsPrivate() == false)
             {
                 return(false);
             }
             if (propertyDeclaration.IsProtected())
             {
                 if (getNode.Modifiers.Any())
                 {
                     return(false);
                 }
                 if (setNode.Modifiers.Any())
                 {
                     return(false);
                 }
             }
             else if (propertyDeclaration.IsPublic())
             {
                 if (baseFieldFieldDeclaration.IsInternal() == false)
                 {
                     if (getNode.Modifiers.Any(x => x.IsKind(SyntaxKind.PrivateKeyword) || x.IsKind(SyntaxKind.InternalKeyword)))
                     {
                         return(false);
                     }
                     if (setNode.Modifiers.Any(x => x.IsKind(SyntaxKind.PrivateKeyword) || x.IsKind(SyntaxKind.InternalKeyword)))
                     {
                         return(false);
                     }
                 }
                 else
                 {
                     if (getNode.Modifiers.Any(x => x.IsKind(SyntaxKind.PrivateKeyword)))
                     {
                         return(false);
                     }
                     if (setNode.Modifiers.Any(x => x.IsKind(SyntaxKind.PrivateKeyword)))
                     {
                         return(false);
                     }
                 }
             }
         }
         else if (baseFieldFieldDeclaration.IsInternal())
         {
             if (propertyDeclaration.IsPrivate() == false)
             {
                 return(false);
             }
             if (propertyDeclaration.IsInternal())
             {
                 if (getNode.Modifiers.Any())
                 {
                     return(false);
                 }
                 if (setNode.Modifiers.Any())
                 {
                     return(false);
                 }
             }
             else if (propertyDeclaration.IsPublic())
             {
                 if (getNode.Modifiers.Any(x => x.IsKind(SyntaxKind.PrivateKeyword) || x.IsKind(SyntaxKind.ProtectedKeyword)))
                 {
                     return(false);
                 }
                 if (setNode.Modifiers.Any(x => x.IsKind(SyntaxKind.PrivateKeyword) || x.IsKind(SyntaxKind.ProtectedKeyword)))
                 {
                     return(false);
                 }
             }
         }
     }
     return(true);
 }