protected override void Run()

in resharper/src/CSharp/Daemon/ConstructorElementProblemAnalyzer.cs [19:43]


        protected override void Run(IClassDeclaration element, ElementProblemAnalyzerData data, IHighlightingConsumer consumer)
        {
            var typeElement = element.DeclaredElement;
            if (typeElement == null) 
                return;
            
            if (typeElement.IsAbstract)
                return;

            if (typeElement.Module is ProjectPsiModuleBase projectPsiModuleBase)
                if (!projectPsiModuleBase.Project.IsGodotProject2()) return;
            
            if (!typeElement.DerivesFromGodotObject()) // could you please check if it only makes sense for the Node or all GodotObjects?
                return;
            
            var ctors = element.ConstructorDeclarationsEnumerable;
            if (!ctors.Any())
                return;
            foreach (var bodyChild in ctors)
            {
                if (bodyChild.DeclaredElement == null) return;
                if (bodyChild.DeclaredElement.Parameters.ToArray().Length == 0) return;
            }
            consumer.AddHighlighting(new MissingParameterlessConstructor(element, element.NameIdentifier.GetDocumentRange()));
        }