public void ReferenceAllTypesInParametersWithReferences(
            IInnerInterface innerInterface,
            InnerEventArgs innerEventArgs,
            InnerDelegate innerDelegate,
            InnerEnum innerEnum,
            InnerStruct innerStruct,
            InnerStruct.InnerStructInnerEnum innerStructInnerEnum,
            InnerStruct.IInnerStructInnerInterface innerStructInnerInterface,
            InnerStruct.InnerStructInnerStruct innerStructInnerStruct,
            InnerStruct.InnerStructInnerClass innerStructInnerClass,
            InnerAbstractClass innerAbstractClass,
            InnerAbstractClass.InnerAbstractClassInnerEnum innerAbstractClassInnerEnum,
            InnerAbstractClass.IInnerAbstractClassInnerInterface innerAbstractClassInnerInterface,
            InnerAbstractClass.InnerAbstractClassStruct innerAbstractClassStruct,
            InnerImplementingClass innerImplementingClass)
        {
            string toStringHolder;

            toStringHolder = innerInterface.ToString();
            toStringHolder = innerEventArgs.ToString();
            toStringHolder = innerDelegate.ToString();
            toStringHolder = innerEnum.ToString();
            toStringHolder = innerStruct.ToString();
            toStringHolder = innerStructInnerEnum.ToString();
            toStringHolder = innerStructInnerInterface.ToString();
            toStringHolder = innerStructInnerStruct.ToString();
            toStringHolder = innerStructInnerClass.ToString();
            toStringHolder = innerAbstractClass.ToString();
            toStringHolder = innerAbstractClassInnerEnum.ToString();
            toStringHolder = innerAbstractClassInnerInterface.ToString();
            toStringHolder = innerAbstractClassStruct.ToString();
            toStringHolder = innerImplementingClass.ToString();
        }
 public void ReferenceAllTypesInParameters(
     IInnerInterface innerInterface,
     InnerEventArgs innerEventArgs,
     InnerDelegate innerDelegate,
     InnerEnum innerEnum,
     InnerStruct innerStruct,
     InnerStruct.InnerStructInnerEnum innerStructInnerEnum,
     InnerStruct.IInnerStructInnerInterface innerStructInnerInterface,
     InnerStruct.InnerStructInnerStruct innerStructInnerStruct,
     InnerStruct.InnerStructInnerClass innerStructInnerClass,
     InnerAbstractClass innerAbstractClass,
     InnerAbstractClass.InnerAbstractClassInnerEnum innerAbstractClassInnerEnum,
     InnerAbstractClass.IInnerAbstractClassInnerInterface innerAbstractClassInnerInterface,
     InnerAbstractClass.InnerAbstractClassStruct innerAbstractClassStruct,
     InnerImplementingClass innerImplementingClass)
 {
 }
        public void ReferenceAllTypesInLocalVariablesWithInitialization()
        {
#pragma warning disable 219
            IInnerInterface innerInterface = new InnerImplementingClass();
            InnerEventArgs  innerEventArgs = new InnerEventArgs();
            InnerDelegate   innerDelegate  = Console.WriteLine;
            InnerEnum       innerEnum      = InnerEnum.Two;
            InnerStruct     innerStruct    = new InnerStruct();
            InnerStruct.InnerStructInnerEnum       innerStructInnerEnum      = InnerStruct.InnerStructInnerEnum.Two;
            InnerStruct.IInnerStructInnerInterface innerStructInnerInterface = new InnerImplementingClass();
            InnerStruct.InnerStructInnerStruct     innerStructInnerStruct    = new InnerStruct.InnerStructInnerStruct();
            InnerStruct.InnerStructInnerClass      innerStructInnerClass     = new InnerStruct.InnerStructInnerClass();
            InnerAbstractClass innerAbstractClass = new InnerImplementingClass();
            InnerAbstractClass.InnerAbstractClassInnerEnum       innerAbstractClassInnerEnum      = InnerAbstractClass.InnerAbstractClassInnerEnum.Two;
            InnerAbstractClass.IInnerAbstractClassInnerInterface innerAbstractClassInnerInterface = new InnerImplementingClass();
            InnerAbstractClass.InnerAbstractClassStruct          innerAbstractClassStruct         = new InnerAbstractClass.InnerAbstractClassStruct();
            InnerImplementingClass innerImplementingClass = new InnerImplementingClass();
#pragma warning restore 219
        }
        public void ReferenceAllTypesInLocalVariablesWithInitializationWithReferences()
        {
            IInnerInterface innerInterface = new InnerImplementingClass();
            InnerEventArgs  innerEventArgs = new InnerEventArgs();
            InnerDelegate   innerDelegate  = Console.WriteLine;
            InnerEnum       innerEnum      = InnerEnum.Two;
            InnerStruct     innerStruct    = new InnerStruct();

            InnerStruct.InnerStructInnerEnum       innerStructInnerEnum      = InnerStruct.InnerStructInnerEnum.Two;
            InnerStruct.IInnerStructInnerInterface innerStructInnerInterface = new InnerImplementingClass();
            InnerStruct.InnerStructInnerStruct     innerStructInnerStruct    = new InnerStruct.InnerStructInnerStruct();
            InnerStruct.InnerStructInnerClass      innerStructInnerClass     = new InnerStruct.InnerStructInnerClass();
            InnerAbstractClass innerAbstractClass = new InnerImplementingClass();

            InnerAbstractClass.InnerAbstractClassInnerEnum       innerAbstractClassInnerEnum      = InnerAbstractClass.InnerAbstractClassInnerEnum.Two;
            InnerAbstractClass.IInnerAbstractClassInnerInterface innerAbstractClassInnerInterface = new InnerImplementingClass();
            InnerAbstractClass.InnerAbstractClassStruct          innerAbstractClassStruct         = new InnerAbstractClass.InnerAbstractClassStruct();
            InnerImplementingClass innerImplementingClass = new InnerImplementingClass();

            string toStringHolder;

            toStringHolder = innerInterface.ToString();
            toStringHolder = innerEventArgs.ToString();
            toStringHolder = innerDelegate.ToString();
            toStringHolder = innerEnum.ToString();
            toStringHolder = innerStruct.ToString();
            toStringHolder = innerStructInnerEnum.ToString();
            toStringHolder = innerStructInnerInterface.ToString();
            toStringHolder = innerStructInnerStruct.ToString();
            toStringHolder = innerStructInnerClass.ToString();
            toStringHolder = innerAbstractClass.ToString();
            toStringHolder = innerAbstractClassInnerEnum.ToString();
            toStringHolder = innerAbstractClassInnerInterface.ToString();
            toStringHolder = innerAbstractClassStruct.ToString();
            toStringHolder = innerImplementingClass.ToString();
        }
            public void InnerAbstractClassReferenceAllMembers()
            {
                var events = 0;
                EventHandler<InnerEventArgs> eventDelegate = (object sender, InnerEventArgs e) => { ++events; };
                int i;

                var selfReferencingMembersMixin = new SelfReferencingMembersMixin
                {
                    Property = 4
                };
                selfReferencingMembersMixin.field = selfReferencingMembersMixin.Property;
                selfReferencingMembersMixin.Method();
                selfReferencingMembersMixin.EventHappened += eventDelegate;
                selfReferencingMembersMixin.OnEventHappened(new InnerEventArgs());
                selfReferencingMembersMixin.EventHappened -= eventDelegate;

                SelfReferencingMembersMixin.StaticProperty = 9;
                SelfReferencingMembersMixin.staticField = StaticProperty;
                SelfReferencingMembersMixin.StaticMethod();
                SelfReferencingMembersMixin.StaticEventHappened += eventDelegate;
                SelfReferencingMembersMixin.OnStaticEventHappened(new InnerEventArgs());
                SelfReferencingMembersMixin.StaticEventHappened -= eventDelegate;

                InnerStruct innerStruct = new InnerStruct();
                innerStruct.InnerStructProperty = 54;
                i = innerStruct.InnerStructProperty;
                innerStruct.InnerStructMethod();
                innerStruct.InnerStructEventHappened += eventDelegate;
                innerStruct.InnerStructEventHappened -= eventDelegate;
                InnerStruct.StaticInnerStructProperty = 58;
                i = InnerStruct.StaticInnerStructProperty;
                InnerStruct.StaticInnerStructMethod();
                InnerStruct.StaticInnerStructEventHappened += eventDelegate;
                InnerStruct.StaticInnerStructEventHappened -= eventDelegate;

                this.InnerAbstractClassProperty = 85;
                this.innerAbstractClassField = this.InnerAbstractClassProperty;
                this.InnerAbstractClassMethod();
                this.InnerAbstractClassEventHappened += eventDelegate;
                this.OnInnerAbstractClassEventHappened(new InnerEventArgs());
                this.InnerAbstractClassEventHappened -= eventDelegate;

                InnerAbstractClass.StaticInnerAbstractClassProperty = 32;
                InnerAbstractClass.staticInnerAbstractClassField = InnerAbstractClass.StaticInnerAbstractClassProperty;
                InnerAbstractClass.StaticInnerAbstractClassMethod();
                InnerAbstractClass.StaticInnerAbstractClassEventHappened += eventDelegate;
                InnerAbstractClass.OnStaticInnerAbstractClassEventHappened(new InnerEventArgs());
                InnerAbstractClass.StaticInnerAbstractClassEventHappened -= eventDelegate;

                var innerImplementingClass = new InnerImplementingClass
                {
                    InnerAbstractClassProperty = 85
                };

                innerImplementingClass.innerAbstractClassField = innerImplementingClass.InnerAbstractClassProperty;
                innerImplementingClass.InnerAbstractClassMethod();
                innerImplementingClass.InnerAbstractClassEventHappened += eventDelegate;
                innerImplementingClass.InnerAbstractClassEventHappened -= eventDelegate;

                innerImplementingClass.InnerAbstractClassAbstractProperty = 781;
                i = innerImplementingClass.InnerAbstractClassAbstractProperty;
                innerImplementingClass.InnerAbstractClassAbstractMethod();
                innerImplementingClass.InnerAbstractClassAbstractEventHappened += eventDelegate;
                innerImplementingClass.InnerAbstractClassAbstractEventHappened -= eventDelegate;

                innerImplementingClass.InnerAbstractClassInnerInterfaceProperty = 85;
                i = innerImplementingClass.InnerAbstractClassInnerInterfaceProperty;
                innerImplementingClass.InnerAbstractClassInnerInterfaceMethod();
                innerImplementingClass.InnerAbstractClassInnerInterfaceEventHappened += eventDelegate;
                innerImplementingClass.InnerAbstractClassInnerInterfaceEventHappened -= eventDelegate;

                innerImplementingClass.InnerInterfaceProperty = 69;
                i = innerImplementingClass.InnerInterfaceProperty;
                innerImplementingClass.InnerInterfaceMethod();
                innerImplementingClass.InnerInterfaceEventHappened += eventDelegate;
                innerImplementingClass.InnerInterfaceEventHappened -= eventDelegate;

                innerImplementingClass.InnerStructInnerInterfaceProperty = 15;
                i = innerImplementingClass.InnerStructInnerInterfaceProperty;
                innerImplementingClass.InnerStructInnerInterfaceMethod();
                innerImplementingClass.InnerStructInnerInterfaceEventHappened += eventDelegate;
                innerImplementingClass.InnerStructInnerInterfaceEventHappened -= eventDelegate;

                innerImplementingClass.InnerImplementingClassProperty = 48;
                i = innerImplementingClass.InnerImplementingClassProperty;
                innerImplementingClass.InnerImplementingClassMethod();
                innerImplementingClass.InnerImplementingClassEventHappened += eventDelegate;
                innerImplementingClass.InnerImplementingClassEventHappened -= eventDelegate;

                InnerImplementingClass.StaticInnerImplementingClassProperty = 13;
                i = InnerImplementingClass.StaticInnerImplementingClassProperty;
                InnerImplementingClass.StaticInnerImplementingClassMethod();
                InnerImplementingClass.StaticInnerImplementingClassEventHappened += eventDelegate;
                InnerImplementingClass.StaticInnerImplementingClassEventHappened -= eventDelegate;
            }
        public void ReferenceAllTypesInParametersWithReferences(
            IInnerInterface innerInterface,
            InnerEventArgs innerEventArgs,
            InnerDelegate innerDelegate,
            InnerEnum innerEnum,
            InnerStruct innerStruct,
            InnerStruct.InnerStructInnerEnum innerStructInnerEnum,
            InnerStruct.IInnerStructInnerInterface innerStructInnerInterface,
            InnerStruct.InnerStructInnerStruct innerStructInnerStruct,
            InnerStruct.InnerStructInnerClass innerStructInnerClass,
            InnerAbstractClass innerAbstractClass,
            InnerAbstractClass.InnerAbstractClassInnerEnum innerAbstractClassInnerEnum,
            InnerAbstractClass.IInnerAbstractClassInnerInterface innerAbstractClassInnerInterface,
            InnerAbstractClass.InnerAbstractClassStruct innerAbstractClassStruct,
            InnerImplementingClass innerImplementingClass)
        {
            string toStringHolder;

            toStringHolder = innerInterface.ToString();
            toStringHolder = innerEventArgs.ToString();
            toStringHolder = innerDelegate.ToString();
            toStringHolder = innerEnum.ToString();
            toStringHolder = innerStruct.ToString();
            toStringHolder = innerStructInnerEnum.ToString();
            toStringHolder = innerStructInnerInterface.ToString();
            toStringHolder = innerStructInnerStruct.ToString();
            toStringHolder = innerStructInnerClass.ToString();
            toStringHolder = innerAbstractClass.ToString();
            toStringHolder = innerAbstractClassInnerEnum.ToString();
            toStringHolder = innerAbstractClassInnerInterface.ToString();
            toStringHolder = innerAbstractClassStruct.ToString();
            toStringHolder = innerImplementingClass.ToString();
        }
 public void ReferenceAllTypesInParameters(
     IInnerInterface innerInterface,
     InnerEventArgs innerEventArgs,
     InnerDelegate innerDelegate,
     InnerEnum innerEnum,
     InnerStruct innerStruct,
     InnerStruct.InnerStructInnerEnum innerStructInnerEnum,
     InnerStruct.IInnerStructInnerInterface innerStructInnerInterface,
     InnerStruct.InnerStructInnerStruct innerStructInnerStruct,
     InnerStruct.InnerStructInnerClass innerStructInnerClass,
     InnerAbstractClass innerAbstractClass,
     InnerAbstractClass.InnerAbstractClassInnerEnum innerAbstractClassInnerEnum,
     InnerAbstractClass.IInnerAbstractClassInnerInterface innerAbstractClassInnerInterface,
     InnerAbstractClass.InnerAbstractClassStruct innerAbstractClassStruct,
     InnerImplementingClass innerImplementingClass)
 {
 }
        public void ReferenceAllTypesInLocalVariablesWithInitializationWithReferences()
        {
            IInnerInterface innerInterface = new InnerImplementingClass();
            InnerEventArgs innerEventArgs = new InnerEventArgs();
            InnerDelegate innerDelegate = Console.WriteLine;
            InnerEnum innerEnum = InnerEnum.Two;
            InnerStruct innerStruct = new InnerStruct();
            InnerStruct.InnerStructInnerEnum innerStructInnerEnum = InnerStruct.InnerStructInnerEnum.Two;
            InnerStruct.IInnerStructInnerInterface innerStructInnerInterface = new InnerImplementingClass();
            InnerStruct.InnerStructInnerStruct innerStructInnerStruct = new InnerStruct.InnerStructInnerStruct();
            InnerStruct.InnerStructInnerClass innerStructInnerClass = new InnerStruct.InnerStructInnerClass();
            InnerAbstractClass innerAbstractClass = new InnerImplementingClass();
            InnerAbstractClass.InnerAbstractClassInnerEnum innerAbstractClassInnerEnum = InnerAbstractClass.InnerAbstractClassInnerEnum.Two;
            InnerAbstractClass.IInnerAbstractClassInnerInterface innerAbstractClassInnerInterface = new InnerImplementingClass();
            InnerAbstractClass.InnerAbstractClassStruct innerAbstractClassStruct = new InnerAbstractClass.InnerAbstractClassStruct();
            InnerImplementingClass innerImplementingClass = new InnerImplementingClass();

            string toStringHolder;

            toStringHolder = innerInterface.ToString();
            toStringHolder = innerEventArgs.ToString();
            toStringHolder = innerDelegate.ToString();
            toStringHolder = innerEnum.ToString();
            toStringHolder = innerStruct.ToString();
            toStringHolder = innerStructInnerEnum.ToString();
            toStringHolder = innerStructInnerInterface.ToString();
            toStringHolder = innerStructInnerStruct.ToString();
            toStringHolder = innerStructInnerClass.ToString();
            toStringHolder = innerAbstractClass.ToString();
            toStringHolder = innerAbstractClassInnerEnum.ToString();
            toStringHolder = innerAbstractClassInnerInterface.ToString();
            toStringHolder = innerAbstractClassStruct.ToString();
            toStringHolder = innerImplementingClass.ToString();
        }
 public void ReferenceAllTypesInLocalVariablesWithInitialization()
 {
     #pragma warning disable 219
     IInnerInterface innerInterface = new InnerImplementingClass();
     InnerEventArgs innerEventArgs = new InnerEventArgs();
     InnerDelegate innerDelegate = Console.WriteLine;
     InnerEnum innerEnum = InnerEnum.Two;
     InnerStruct innerStruct = new InnerStruct();
     InnerStruct.InnerStructInnerEnum innerStructInnerEnum = InnerStruct.InnerStructInnerEnum.Two;
     InnerStruct.IInnerStructInnerInterface innerStructInnerInterface = new InnerImplementingClass();
     InnerStruct.InnerStructInnerStruct innerStructInnerStruct = new InnerStruct.InnerStructInnerStruct();
     InnerStruct.InnerStructInnerClass innerStructInnerClass = new InnerStruct.InnerStructInnerClass();
     InnerAbstractClass innerAbstractClass = new InnerImplementingClass();
     InnerAbstractClass.InnerAbstractClassInnerEnum innerAbstractClassInnerEnum = InnerAbstractClass.InnerAbstractClassInnerEnum.Two;
     InnerAbstractClass.IInnerAbstractClassInnerInterface innerAbstractClassInnerInterface = new InnerImplementingClass();
     InnerAbstractClass.InnerAbstractClassStruct innerAbstractClassStruct = new InnerAbstractClass.InnerAbstractClassStruct();
     InnerImplementingClass innerImplementingClass = new InnerImplementingClass();
     #pragma warning restore 219
 }
        public void ReferenceAllMembers()
        {
            var events = 0;
            EventHandler<InnerEventArgs> eventDelegate = (object sender, InnerEventArgs e) => { ++events; };
            int i;

            this.Property = 4;
            this.field = this.Property;
            this.Method();
            this.EventHappened += eventDelegate;
            this.OnEventHappened(new InnerEventArgs());
            this.EventHappened -= eventDelegate;

            StaticProperty = 9;
            staticField = StaticProperty;
            StaticMethod();
            StaticEventHappened += eventDelegate;
            OnStaticEventHappened(new InnerEventArgs());
            StaticEventHappened -= eventDelegate;

            InnerStruct innerStruct = new InnerStruct();
            innerStruct.InnerStructProperty = 54;
            i = innerStruct.InnerStructProperty;
            innerStruct.InnerStructMethod();
            innerStruct.InnerStructEventHappened += eventDelegate;
            innerStruct.InnerStructEventHappened -= eventDelegate;
            InnerStruct.StaticInnerStructProperty = 58;
            i = InnerStruct.StaticInnerStructProperty;
            InnerStruct.StaticInnerStructMethod();
            InnerStruct.StaticInnerStructEventHappened += eventDelegate;
            InnerStruct.StaticInnerStructEventHappened -= eventDelegate;

            InnerAbstractClass.StaticInnerAbstractClassProperty = 32;
            i = InnerAbstractClass.StaticInnerAbstractClassProperty;
            InnerAbstractClass.StaticInnerAbstractClassMethod();
            InnerAbstractClass.StaticInnerAbstractClassEventHappened += eventDelegate;
            InnerAbstractClass.StaticInnerAbstractClassEventHappened -= eventDelegate;

            InnerImplementingClass innerImplementingClass = new InnerImplementingClass();

            innerImplementingClass.InnerAbstractClassProperty = 85;
            i = innerImplementingClass.InnerAbstractClassProperty;
            innerImplementingClass.InnerAbstractClassMethod();
            innerImplementingClass.InnerAbstractClassEventHappened += eventDelegate;
            innerImplementingClass.InnerAbstractClassEventHappened -= eventDelegate;

            innerImplementingClass.InnerAbstractClassAbstractProperty = 781;
            i = innerImplementingClass.InnerAbstractClassAbstractProperty;
            innerImplementingClass.InnerAbstractClassAbstractMethod();
            innerImplementingClass.InnerAbstractClassAbstractEventHappened += eventDelegate;
            innerImplementingClass.InnerAbstractClassAbstractEventHappened -= eventDelegate;

            innerImplementingClass.InnerAbstractClassInnerInterfaceProperty = 85;
            i = innerImplementingClass.InnerAbstractClassInnerInterfaceProperty;
            innerImplementingClass.InnerAbstractClassInnerInterfaceMethod();
            innerImplementingClass.InnerAbstractClassInnerInterfaceEventHappened += eventDelegate;
            innerImplementingClass.InnerAbstractClassInnerInterfaceEventHappened -= eventDelegate;

            innerImplementingClass.InnerInterfaceProperty = 69;
            i = innerImplementingClass.InnerInterfaceProperty;
            innerImplementingClass.InnerInterfaceMethod();
            innerImplementingClass.InnerInterfaceEventHappened += eventDelegate;
            innerImplementingClass.InnerInterfaceEventHappened -= eventDelegate;

            innerImplementingClass.InnerStructInnerInterfaceProperty = 15;
            i = innerImplementingClass.InnerStructInnerInterfaceProperty;
            innerImplementingClass.InnerStructInnerInterfaceMethod();
            innerImplementingClass.InnerStructInnerInterfaceEventHappened += eventDelegate;
            innerImplementingClass.InnerStructInnerInterfaceEventHappened -= eventDelegate;

            innerImplementingClass.InnerImplementingClassProperty = 48;
            i = innerImplementingClass.InnerImplementingClassProperty;
            innerImplementingClass.InnerImplementingClassMethod();
            innerImplementingClass.InnerImplementingClassEventHappened += eventDelegate;
            innerImplementingClass.InnerImplementingClassEventHappened -= eventDelegate;

            InnerImplementingClass.StaticInnerImplementingClassProperty = 13;
            i = InnerImplementingClass.StaticInnerImplementingClassProperty;
            InnerImplementingClass.StaticInnerImplementingClassMethod();
            InnerImplementingClass.StaticInnerImplementingClassEventHappened += eventDelegate;
            InnerImplementingClass.StaticInnerImplementingClassEventHappened -= eventDelegate;
        }
        public void ReferenceAllMembers()
        {
            var events = 0;
            EventHandler <InnerEventArgs> eventDelegate = (object sender, InnerEventArgs e) => { ++events; };
            int i;

            this.Property = 4;
            this.field    = this.Property;
            this.Method();
            this.EventHappened += eventDelegate;
            this.OnEventHappened(new InnerEventArgs());
            this.EventHappened -= eventDelegate;

            StaticProperty = 9;
            staticField    = StaticProperty;
            StaticMethod();
            StaticEventHappened += eventDelegate;
            OnStaticEventHappened(new InnerEventArgs());
            StaticEventHappened -= eventDelegate;

            InnerStruct innerStruct = new InnerStruct();

            innerStruct.InnerStructProperty = 54;
            i = innerStruct.InnerStructProperty;
            innerStruct.InnerStructMethod();
            innerStruct.InnerStructEventHappened += eventDelegate;
            innerStruct.InnerStructEventHappened -= eventDelegate;
            InnerStruct.StaticInnerStructProperty = 58;
            i = InnerStruct.StaticInnerStructProperty;
            InnerStruct.StaticInnerStructMethod();
            InnerStruct.StaticInnerStructEventHappened += eventDelegate;
            InnerStruct.StaticInnerStructEventHappened -= eventDelegate;

            InnerAbstractClass.StaticInnerAbstractClassProperty = 32;
            i = InnerAbstractClass.StaticInnerAbstractClassProperty;
            InnerAbstractClass.StaticInnerAbstractClassMethod();
            InnerAbstractClass.StaticInnerAbstractClassEventHappened += eventDelegate;
            InnerAbstractClass.StaticInnerAbstractClassEventHappened -= eventDelegate;

            InnerImplementingClass innerImplementingClass = new InnerImplementingClass();

            innerImplementingClass.InnerAbstractClassProperty = 85;
            i = innerImplementingClass.InnerAbstractClassProperty;
            innerImplementingClass.InnerAbstractClassMethod();
            innerImplementingClass.InnerAbstractClassEventHappened += eventDelegate;
            innerImplementingClass.InnerAbstractClassEventHappened -= eventDelegate;

            innerImplementingClass.InnerAbstractClassAbstractProperty = 781;
            i = innerImplementingClass.InnerAbstractClassAbstractProperty;
            innerImplementingClass.InnerAbstractClassAbstractMethod();
            innerImplementingClass.InnerAbstractClassAbstractEventHappened += eventDelegate;
            innerImplementingClass.InnerAbstractClassAbstractEventHappened -= eventDelegate;

            innerImplementingClass.InnerAbstractClassInnerInterfaceProperty = 85;
            i = innerImplementingClass.InnerAbstractClassInnerInterfaceProperty;
            innerImplementingClass.InnerAbstractClassInnerInterfaceMethod();
            innerImplementingClass.InnerAbstractClassInnerInterfaceEventHappened += eventDelegate;
            innerImplementingClass.InnerAbstractClassInnerInterfaceEventHappened -= eventDelegate;

            innerImplementingClass.InnerInterfaceProperty = 69;
            i = innerImplementingClass.InnerInterfaceProperty;
            innerImplementingClass.InnerInterfaceMethod();
            innerImplementingClass.InnerInterfaceEventHappened += eventDelegate;
            innerImplementingClass.InnerInterfaceEventHappened -= eventDelegate;

            innerImplementingClass.InnerStructInnerInterfaceProperty = 15;
            i = innerImplementingClass.InnerStructInnerInterfaceProperty;
            innerImplementingClass.InnerStructInnerInterfaceMethod();
            innerImplementingClass.InnerStructInnerInterfaceEventHappened += eventDelegate;
            innerImplementingClass.InnerStructInnerInterfaceEventHappened -= eventDelegate;

            innerImplementingClass.InnerImplementingClassProperty = 48;
            i = innerImplementingClass.InnerImplementingClassProperty;
            innerImplementingClass.InnerImplementingClassMethod();
            innerImplementingClass.InnerImplementingClassEventHappened += eventDelegate;
            innerImplementingClass.InnerImplementingClassEventHappened -= eventDelegate;

            InnerImplementingClass.StaticInnerImplementingClassProperty = 13;
            i = InnerImplementingClass.StaticInnerImplementingClassProperty;
            InnerImplementingClass.StaticInnerImplementingClassMethod();
            InnerImplementingClass.StaticInnerImplementingClassEventHappened += eventDelegate;
            InnerImplementingClass.StaticInnerImplementingClassEventHappened -= eventDelegate;
        }
            public void InnerAbstractClassReferenceAllMembers()
            {
                var events = 0;
                EventHandler <InnerEventArgs> eventDelegate = (object sender, InnerEventArgs e) => { ++events; };
                int i;

                var selfReferencingMembersMixin = new SelfReferencingMembersMixin
                {
                    Property = 4
                };

                selfReferencingMembersMixin.field = selfReferencingMembersMixin.Property;
                selfReferencingMembersMixin.Method();
                selfReferencingMembersMixin.EventHappened += eventDelegate;
                selfReferencingMembersMixin.OnEventHappened(new InnerEventArgs());
                selfReferencingMembersMixin.EventHappened -= eventDelegate;

                SelfReferencingMembersMixin.StaticProperty = 9;
                SelfReferencingMembersMixin.staticField    = StaticProperty;
                SelfReferencingMembersMixin.StaticMethod();
                SelfReferencingMembersMixin.StaticEventHappened += eventDelegate;
                SelfReferencingMembersMixin.OnStaticEventHappened(new InnerEventArgs());
                SelfReferencingMembersMixin.StaticEventHappened -= eventDelegate;

                InnerStruct innerStruct = new InnerStruct();

                innerStruct.InnerStructProperty = 54;
                i = innerStruct.InnerStructProperty;
                innerStruct.InnerStructMethod();
                innerStruct.InnerStructEventHappened += eventDelegate;
                innerStruct.InnerStructEventHappened -= eventDelegate;
                InnerStruct.StaticInnerStructProperty = 58;
                i = InnerStruct.StaticInnerStructProperty;
                InnerStruct.StaticInnerStructMethod();
                InnerStruct.StaticInnerStructEventHappened += eventDelegate;
                InnerStruct.StaticInnerStructEventHappened -= eventDelegate;

                this.InnerAbstractClassProperty = 85;
                this.innerAbstractClassField    = this.InnerAbstractClassProperty;
                this.InnerAbstractClassMethod();
                this.InnerAbstractClassEventHappened += eventDelegate;
                this.OnInnerAbstractClassEventHappened(new InnerEventArgs());
                this.InnerAbstractClassEventHappened -= eventDelegate;

                InnerAbstractClass.StaticInnerAbstractClassProperty = 32;
                InnerAbstractClass.staticInnerAbstractClassField    = InnerAbstractClass.StaticInnerAbstractClassProperty;
                InnerAbstractClass.StaticInnerAbstractClassMethod();
                InnerAbstractClass.StaticInnerAbstractClassEventHappened += eventDelegate;
                InnerAbstractClass.OnStaticInnerAbstractClassEventHappened(new InnerEventArgs());
                InnerAbstractClass.StaticInnerAbstractClassEventHappened -= eventDelegate;

                var innerImplementingClass = new InnerImplementingClass
                {
                    InnerAbstractClassProperty = 85
                };

                innerImplementingClass.innerAbstractClassField = innerImplementingClass.InnerAbstractClassProperty;
                innerImplementingClass.InnerAbstractClassMethod();
                innerImplementingClass.InnerAbstractClassEventHappened += eventDelegate;
                innerImplementingClass.InnerAbstractClassEventHappened -= eventDelegate;

                innerImplementingClass.InnerAbstractClassAbstractProperty = 781;
                i = innerImplementingClass.InnerAbstractClassAbstractProperty;
                innerImplementingClass.InnerAbstractClassAbstractMethod();
                innerImplementingClass.InnerAbstractClassAbstractEventHappened += eventDelegate;
                innerImplementingClass.InnerAbstractClassAbstractEventHappened -= eventDelegate;

                innerImplementingClass.InnerAbstractClassInnerInterfaceProperty = 85;
                i = innerImplementingClass.InnerAbstractClassInnerInterfaceProperty;
                innerImplementingClass.InnerAbstractClassInnerInterfaceMethod();
                innerImplementingClass.InnerAbstractClassInnerInterfaceEventHappened += eventDelegate;
                innerImplementingClass.InnerAbstractClassInnerInterfaceEventHappened -= eventDelegate;

                innerImplementingClass.InnerInterfaceProperty = 69;
                i = innerImplementingClass.InnerInterfaceProperty;
                innerImplementingClass.InnerInterfaceMethod();
                innerImplementingClass.InnerInterfaceEventHappened += eventDelegate;
                innerImplementingClass.InnerInterfaceEventHappened -= eventDelegate;

                innerImplementingClass.InnerStructInnerInterfaceProperty = 15;
                i = innerImplementingClass.InnerStructInnerInterfaceProperty;
                innerImplementingClass.InnerStructInnerInterfaceMethod();
                innerImplementingClass.InnerStructInnerInterfaceEventHappened += eventDelegate;
                innerImplementingClass.InnerStructInnerInterfaceEventHappened -= eventDelegate;

                innerImplementingClass.InnerImplementingClassProperty = 48;
                i = innerImplementingClass.InnerImplementingClassProperty;
                innerImplementingClass.InnerImplementingClassMethod();
                innerImplementingClass.InnerImplementingClassEventHappened += eventDelegate;
                innerImplementingClass.InnerImplementingClassEventHappened -= eventDelegate;

                InnerImplementingClass.StaticInnerImplementingClassProperty = 13;
                i = InnerImplementingClass.StaticInnerImplementingClassProperty;
                InnerImplementingClass.StaticInnerImplementingClassMethod();
                InnerImplementingClass.StaticInnerImplementingClassEventHappened += eventDelegate;
                InnerImplementingClass.StaticInnerImplementingClassEventHappened -= eventDelegate;
            }