public static bool Matches(this InstanceStaticCombination combination, FieldDeclarationSyntax field)
 {
     return(combination.Match(
                instanceAndStaticCase: _ => true,
                instanceCase: _ => !field.IsStatic(),
                staticCase: _ => field.IsStatic()));
 }
コード例 #2
0
        public static async Task ComputeRefactoringsAsync(RefactoringContext context, FieldDeclarationSyntax fieldDeclaration)
        {
            if (fieldDeclaration.IsConst())
            {
                if (context.IsRefactoringEnabled(RefactoringIdentifiers.ReplaceConstantWithField) &&
                    fieldDeclaration.Span.Contains(context.Span))
                {
                    context.RegisterRefactoring(
                        "Replace constant with field",
                        cancellationToken => ReplaceConstantWithFieldRefactoring.RefactorAsync(context.Document, fieldDeclaration, cancellationToken));
                }
            }
            else if (context.IsRefactoringEnabled(RefactoringIdentifiers.ReplaceFieldWithConstant) &&
                     fieldDeclaration.Modifiers.Contains(SyntaxKind.ReadOnlyKeyword) &&
                     fieldDeclaration.IsStatic() &&
                     fieldDeclaration.Span.Contains(context.Span))
            {
                if (await ReplaceFieldWithConstantRefactoring.CanRefactorAsync(context, fieldDeclaration).ConfigureAwait(false))
                {
                    context.RegisterRefactoring(
                        "Replace field with constant",
                        cancellationToken => ReplaceFieldWithConstantRefactoring.RefactorAsync(context.Document, fieldDeclaration, cancellationToken));
                }
            }

            if (context.IsRefactoringEnabled(RefactoringIdentifiers.MarkMemberAsStatic) &&
                fieldDeclaration.Span.Contains(context.Span) &&
                MarkMemberAsStaticRefactoring.CanRefactor(fieldDeclaration))
            {
                context.RegisterRefactoring(
                    "Mark field as static",
                    cancellationToken => MarkMemberAsStaticRefactoring.RefactorAsync(context.Document, fieldDeclaration, cancellationToken));
            }
        }
コード例 #3
0
        private static bool CanHandle(FieldDeclarationSyntax field)
        {
            Contract.Requires(field != null);

            return(!field.IsConstant() &&
                   !field.IsStatic() &&
                   field.HasOneVariable());
        }
コード例 #4
0
        public static bool CanRefactor(FieldDeclarationSyntax fieldDeclaration)
        {
            if (fieldDeclaration == null)
            {
                throw new ArgumentNullException(nameof(fieldDeclaration));
            }

            return(!fieldDeclaration.IsStatic() &&
                   !fieldDeclaration.IsConst() &&
                   IsStaticClass(fieldDeclaration.Parent));
        }
コード例 #5
0
 public static bool CanRefactor(FieldDeclarationSyntax fieldDeclaration)
 {
     return(!fieldDeclaration.IsStatic() &&
            !fieldDeclaration.IsConst() &&
            IsStaticClass(fieldDeclaration.Parent));
 }
コード例 #6
0
 public static bool IsRecordViable(this FieldDeclarationSyntax field)
 {
     return(field.IsPublic() && !field.IsStatic());
 }