예제 #1
0
        public void MutableClassWithInitialState()
        {
            // Here the implicit NotNull is wrong, but we have the NotNullMemberIsNotInitialized warning at declaration site.

            var mutableClass = new FieldsSample.MutableClass();

            TestValueAnalysis(mutableClass.Field, mutableClass.Field == null /*Expect:ConditionIsAlwaysTrueOrFalse[Flds && !RtRo]*/);
            mutableClass.Field.Should().BeNull();
        }
예제 #2
0
        public void MutableClassWithNullInitialization()
        {
            var mutableClass = new FieldsSample.MutableClass {
                Field = null                                                /*Expect:AssignNullToNotNullAttribute[Flds && !RtRo]*/
            };

            TestValueAnalysis(mutableClass.Field, mutableClass.Field == null /*Expect:ConditionIsAlwaysTrueOrFalse[Flds && !RtRo]*/);
            mutableClass.Field.Should().BeNull();
        }
예제 #3
0
        public void MutableClass()
        {
            var mutableClass = new FieldsSample.MutableClass {
                Field = "value"
            };

            TestValueAnalysis(mutableClass.Field, mutableClass.Field == null /*Expect:ConditionIsAlwaysTrueOrFalse[Flds && !RtRo]*/);
            mutableClass.Field.Should().Be("value");
        }
        public void MutableClassWithUnknownNullabilityInitialization()
        {
            // Here the implicit NotNull is wrong, but we have the NotNullMemberIsNotInitialized warning at declaration site.

            var mutableClass = new FieldsSample.MutableClass {
                Field = External.UnknownNullabilityString
            };

            // The assignment above overwrites the implicit NotNull with 'UNKNOWN' (since R# 2018.2):
            TestValueAnalysis(mutableClass.Field, mutableClass.Field == null);
            mutableClass.Field.Should().BeNull();
        }
        public void MutableClassWithNullInitialization()
        {
            var mutableClass = new FieldsSample.MutableClass {
                Field = null                                                /*Expect:AssignNullToNotNullAttribute[Flds && !RtRo]*/
            };

            // The null assignment above overwrites the implicit NotNull with 'NULL' (since R# 2018.2):
            TestValueAnalysis(
                mutableClass.Field /*Expect:AssignNullToNotNullAttribute*/,
                mutableClass.Field == null /*Expect:ConditionIsAlwaysTrueOrFalse[Flds && !RtRo]*/);
            mutableClass.Field.Should().BeNull();
        }