/*
 * Copyright 2010-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license
 * that can be found in the LICENSE file.
 */
// WITH_STDLIB

import kotlin.test.*

open class A(val a:Int, val b:Int)

open class B(val c:Int, d:Int):A(c, d)

open class C(i:Int, j:Int):B(i + j, 42)

class D (i: Int, j:Int) : C(i, j){
   constructor(i: Int, j:Int, k:Int) : this(i, j) {
      foo(i)
   }
   constructor():this(1, 2)
}

fun foo(i:Int) : Unit {}


fun foo(i:Int, j:Int):Int {
   val c = D(i, j)
   return c.c
}

fun box(): String {
   assertEquals(5, foo(2, 3))
   return "OK"
}