tests/cases/conformance/classes/mixinClassesMembers.ts(81,9): error TS2769: No overload matches this call.
  Overload 1 of 2, '(s: string): M1 & C1', gave the following error.
    The 'this' context of type 'void' is not assignable to method's 'this' of type 'C1'.
  Overload 2 of 2, '(n: number): M1 & C1', gave the following error.
    The 'this' context of type 'void' is not assignable to method's 'this' of type 'C1'.
tests/cases/conformance/classes/mixinClassesMembers.ts(90,9): error TS2769: No overload matches this call.
  Overload 1 of 2, '(s: string): M2 & M1 & C1', gave the following error.
    The 'this' context of type 'void' is not assignable to method's 'this' of type 'C1'.
  Overload 2 of 2, '(n: number): M2 & M1 & C1', gave the following error.
    The 'this' context of type 'void' is not assignable to method's 'this' of type 'C1'.


==== tests/cases/conformance/classes/mixinClassesMembers.ts (2 errors) ====
    declare class C1 {
        public a: number;
        protected b: number;
        private c: number;
        constructor(s: string);
        constructor(n: number);
    }
    
    declare class M1 {
        constructor(...args: any[]);
        p: number;
        static p: number;
    }
    
    declare class M2 {
        constructor(...args: any[]);
        f(): number;
        static f(): number;
    }
    
    declare const Mixed1: typeof M1 & typeof C1;
    declare const Mixed2: typeof C1 & typeof M1;
    declare const Mixed3: typeof M2 & typeof M1 & typeof C1;
    declare const Mixed4: typeof C1 & typeof M1 & typeof M2;
    declare const Mixed5: typeof M1 & typeof M2;
    
    function f1() {
        let x1 = new Mixed1("hello");
        let x2 = new Mixed1(42);
        let x3 = new Mixed2("hello");
        let x4 = new Mixed2(42);
        let x5 = new Mixed3("hello");
        let x6 = new Mixed3(42);
        let x7 = new Mixed4("hello");
        let x8 = new Mixed4(42);
        let x9 = new Mixed5();
    }
    
    function f2() {
        let x = new Mixed1("hello");
        x.a;
        x.p;
        Mixed1.p;
    }
    
    function f3() {
        let x = new Mixed2("hello");
        x.a;
        x.p;
        Mixed2.p;
    }
    
    function f4() {
        let x = new Mixed3("hello");
        x.a;
        x.p;
        x.f();
        Mixed3.p;
        Mixed3.f();
    }
    
    function f5() {
        let x = new Mixed4("hello");
        x.a;
        x.p;
        x.f();
        Mixed4.p;
        Mixed4.f();
    }
    
    function f6() {
        let x = new Mixed5();
        x.p;
        x.f();
        Mixed5.p;
        Mixed5.f();
    }
    
    class C2 extends Mixed1 {
        constructor() {
            super("hello");
            ~~~~~~~~~~~~~~
!!! error TS2769: No overload matches this call.
!!! error TS2769:   Overload 1 of 2, '(s: string): M1 & C1', gave the following error.
!!! error TS2769:     The 'this' context of type 'void' is not assignable to method's 'this' of type 'C1'.
!!! error TS2769:   Overload 2 of 2, '(n: number): M1 & C1', gave the following error.
!!! error TS2769:     The 'this' context of type 'void' is not assignable to method's 'this' of type 'C1'.
            this.a;
            this.b;
            this.p;
        }
    }
    
    class C3 extends Mixed3 {
        constructor() {
            super(42);
            ~~~~~~~~~
!!! error TS2769: No overload matches this call.
!!! error TS2769:   Overload 1 of 2, '(s: string): M2 & M1 & C1', gave the following error.
!!! error TS2769:     The 'this' context of type 'void' is not assignable to method's 'this' of type 'C1'.
!!! error TS2769:   Overload 2 of 2, '(n: number): M2 & M1 & C1', gave the following error.
!!! error TS2769:     The 'this' context of type 'void' is not assignable to method's 'this' of type 'C1'.
            this.a;
            this.b;
            this.p;
            this.f();
        }
        f() { return super.f(); }
    }
    