Exemplo n.º 1
0
            public override void VisitConstructorDeclaration(ConstructorDeclaration constructorDeclaration)
            {
                base.VisitConstructorDeclaration(constructorDeclaration);

                if (constructorDeclaration.Initializer.ConstructorInitializerType != ConstructorInitializerType.Base)
                {
                    return;
                }
                if (constructorDeclaration.Initializer.IsNull)
                {
                    return;
                }
                if (constructorDeclaration.Initializer.Arguments.Count != 0)
                {
                    return;
                }
                AddIssue(constructorDeclaration.Initializer.StartLocation, constructorDeclaration.Initializer.EndLocation,
                         ctx.TranslateString("Redundant base constructor call"),
                         ctx.TranslateString("Remove redundant 'base()'"),
                         script => {
                    var clone = (ConstructorDeclaration)constructorDeclaration.Clone();
                    script.Replace(clone.ColonToken, CSharpTokenNode.Null.Clone());
                    script.Replace(constructorDeclaration.Initializer, ConstructorInitializer.Null.Clone());
                });
            }
        private static string GetPrettyCtorName(ConstructorDeclaration ctor)
        {
            var copy   = ctor.Clone();
            var blocks = copy.Children.OfType <BlockStatement>().ToList();

            foreach (var block in blocks)
            {
                block.Remove();
            }
            return(copy.ToString().Replace(Environment.NewLine, ""));
        }