public static bool Matches(this InstanceStaticCombination combination, PropertyDeclarationSyntax property)
 {
     return(combination.Match(
                instanceAndStaticCase: _ => true,
                instanceCase: _ => !property.IsStatic(),
                staticCase: _ => property.IsStatic()));
 }
 public static bool Matches(this InstanceStaticCombination combination, FieldDeclarationSyntax field)
 {
     return(combination.Match(
                instanceAndStaticCase: _ => true,
                instanceCase: _ => !field.IsStatic(),
                staticCase: _ => field.IsStatic()));
 }
コード例 #3
0
ファイル: Utils.cs プロジェクト: dererafi/PurityAnalyzer
        public static bool AnyImpurePropertyInitializer(TypeDeclarationSyntax typeDeclaration,
                                                        SemanticModel semanticModel,
                                                        KnownSymbols knownSymbols,
                                                        RecursiveState recursiveState,
                                                        InstanceStaticCombination instanceStaticCombination)
        {
            var props = typeDeclaration
                        .Members
                        .OfType <PropertyDeclarationSyntax>()
                        .Where(instanceStaticCombination.Matches)
                        .ToArray();

            foreach (var var in props.Select(x => x.Initializer).Where(i => i != null))
            {
                if (Utils.GetImpurities(var, semanticModel, knownSymbols, recursiveState).Any())
                {
                    return(true);
                }
            }

            return(false);
        }
コード例 #4
0
ファイル: Utils.cs プロジェクト: dererafi/PurityAnalyzer
        public static bool AnyImpureFieldInitializer(
            TypeDeclarationSyntax typeDeclaration,
            SemanticModel semanticModel,
            KnownSymbols knownSymbols,
            RecursiveState recursiveState,
            InstanceStaticCombination instanceStaticCombination)
        {
            var fields =
                typeDeclaration.Members
                .OfType <FieldDeclarationSyntax>()
                .Where(instanceStaticCombination.Matches)
                .ToArray();

            foreach (var var in fields.SelectMany(x => x.Declaration.Variables))
            {
                if (Utils.GetImpurities(var, semanticModel, knownSymbols, recursiveState).Any())
                {
                    return(true);
                }
            }

            return(false);
        }