public static void Main()
        {
            var instance = new MethodReturnParameterDataFlow();

            // Validation that assigning value to the return value is verified
            NoRequirements();
            instance.ReturnDefaultConstructor(typeof(TestType), typeof(TestType), typeof(TestType));
            instance.ReturnDefaultConstructorFromUnknownType(null);
            instance.ReturnDefaultConstructorFromConstant();
            instance.ReturnDefaultConstructorFromNull();
            instance.ReturnPublicConstructorsFailure(null);
            instance.ReturnConstructorsFailure(null);

            // Validation that value comming from return value of a method is correctly propagated
            instance.PropagateReturnDefaultConstructor();
            instance.PropagateReturnDefaultConstructorFromConstant();
        }
Example #2
0
        public static void Main()
        {
            var instance = new MethodReturnParameterDataFlow();

            // Validation that assigning value to the return value is verified
            NoRequirements();
            instance.ReturnPublicParameterlessConstructor(typeof(TestType), typeof(TestType), typeof(TestType));
            instance.ReturnPublicParameterlessConstructorFromUnknownType(null);
            instance.ReturnPublicParameterlessConstructorFromConstant();
            instance.ReturnPublicParameterlessConstructorFromNull();
            instance.ReturnPublicConstructorsFailure(null);
            instance.ReturnNonPublicConstructorsFailure(null);
            instance.ReturnUnknownValue();

            // Validation that value comming from return value of a method is correctly propagated
            instance.PropagateReturnPublicParameterlessConstructor();
            instance.PropagateReturnPublicParameterlessConstructorFromConstant();
            instance.PropagateReturnToReturn(0);

            instance.ReturnWithRequirementsAlwaysThrows();

            UnsupportedReturnType();
        }