==== tests/cases/compiler/es6ClassTest.ts (1 errors) ====
    class Bar {
        public goo: number;
        public prop1(x) {
            return x;
        }
    
        constructor (n) { }
    }
    
    // new-style class
    class Foo  extends Bar {
        foo:number;
        gar = 0;
        zoo:string = "zoo";
        x: any;
    
        bar() { return 0; }
    
        private boo();
        private boo(x?) { return x; }
    
        static statVal = 0;
    
        constructor();
        constructor(x?, private y?:string, public z?=0) {
                                        ~~~~~~~~~~~
!!! es6ClassTest.ts(25,37): error TS1015: Parameter cannot have question mark and initializer.
            super(x);
            this.x = x;
            this.gar = 5;
         }
    }
    
    var f = new Foo();
    
    declare module AmbientMod {
        export class Provide {
            foo:number;
            zoo:string;
    
            constructor();
            
            private boo();
            bar();
        }
    }
    
    
    //class GetSetMonster {
    
    
    //  // attack(target) {
    //  //     WScript.Echo("Attacks " + target);
    //  // }
    //  // The contextual keyword "get" followed by an identifier and
    //  // a curly body defines a getter in the same way that "get"
    //  // defines one in an object literal.
    //  // get isAlive() {
    //  //   return this.health > 0;
    //  // }
     
    //  // Likewise, "set" can be used to define setters.
    //  set health(value:number) {
    //    if (value < 0) {
    //      throw new Error('Health must be non-negative.')
    //    }
    //    this.health = value
    //  }
    //  get health() { return 0; }
    
    //  constructor(this.name: string, health: number) {
    //    this.health = 0;
    //  }
    //}
    
    
    //class bar {
    
    //   static fnOverload( );
    
    //   static fnOverload(foo: string){ } // no error
    
    //   constructor(){};    
    
    //}
    