Skip to content

Fix S1117 FP: Field/property instances are not accessible from static methods #8260

@cristian-ambrosini-sonarsource

Description

The rule needs to distinguish between instance and static members.
Primary constructor parameters and instance fields/properties can only be shadowed in instance methods.

class Repro_XXXX(int primaryCtorParam)
{
    private int instanceField = 1;
    private int instanceProperty { get; set; } = 1;
    private static int staticField = 1;
    private static int staticProperty = 1;

    public static void StaticMethod()
    {
        var instanceField = 2; // Noncompliant FP (instance field is not accessible from static method)
        var instanceProperty = 2; // Noncompliant FP (instance property is not accessible from static method)
        var primaryCtorParam = 2; // Noncompliant FP (primary ctor parameter is not accessible from static method)

        var staticField = 2; // Noncompliant
        var staticProperty = 2; // Noncompliant
    }
}

Metadata

Metadata

Labels

False PositiveRule IS triggered when it shouldn't be.

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions