Beispiel #1
0
    public override void Execute()
    {
        ReadConfig();

        if (nullGuardMode == NullGuardMode.AutoDetect)
        {
            nullGuardMode = ModuleDefinition.AutoDetectMode();
        }

        var nullGuardAttribute = ModuleDefinition.GetNullGuardAttribute();

        if (nullGuardAttribute == null)
        {
            nullGuardAttribute = ModuleDefinition.Assembly.GetNullGuardAttribute();
        }

        if (nullGuardAttribute != null)
        {
            ValidationFlags = (ValidationFlags)nullGuardAttribute.ConstructorArguments[0].Value;
        }

        LogInfo($"Mode={nullGuardMode}, ValidationFlags={ValidationFlags}");

        FindReferences();
        var types = GetTypesToProcess();

        CheckForBadAttributes(types);
        ProcessAssembly(types);
        RemoveAttributes(types);
        RemoveReference();
    }
Beispiel #2
0
    public override void Execute()
    {
        ReadConfig();

        if (nullGuardMode == NullGuardMode.AutoDetect)
        {
            nullGuardMode = ModuleDefinition.AutoDetectMode();
        }

        switch (nullGuardMode)
        {
        case NullGuardMode.Explicit:
            nullabilityAnalyzer = new ExplicitModeAnalyzer();
            break;

        case NullGuardMode.NullableReferenceTypes:
            nullabilityAnalyzer = new NullableReferenceTypesModeAnalyzer();
            break;
        }

        var nullGuardAttribute = ModuleDefinition.GetNullGuardAttribute();

        if (nullGuardAttribute == null)
        {
            nullGuardAttribute = ModuleDefinition.Assembly.GetNullGuardAttribute();
        }

        if (nullGuardAttribute != null)
        {
            ValidationFlags = (ValidationFlags)nullGuardAttribute.ConstructorArguments[0].Value;
        }

        WriteInfo($"Mode={nullGuardMode}, ValidationFlags={ValidationFlags}");

        FindReferences();
        var types = GetTypesToProcess();

        nullabilityAnalyzer.CheckForBadAttributes(types, WriteError);
        ProcessAssembly(types);
        RemoveAttributes(types);
        RemoveReference();
    }