~A~class A {
  ~B~class B~B()~() {
    ~B(int)~constructor(i: Int) {}
  }

  ~foo~fun foo(~foo.a~a : `kotlin::Char`Char) = `foo.a`a`:kotlin::Char`
  ~fooB~fun fooB() = `foo`foo('1')`:kotlin::Char`
  ~foo.1~fun foo() : Int = (1.`kotlin::Int.plus(Int)`plus(1))`:kotlin::Int`
  ~foo91~fun foo1() : `B`B = `B()`B()`:B`
  ~A.a~val a : `kotlin::Int`Int
}

~C~class C : `A`A {
    ~C.B~class B : `C`C {

    }

    val x : `C.B`B
}

fun test() : Unit {
    for (~i~i in 1..2) {
      `i`i`:kotlin::Int`
    }
    for (val ~j~j in 1..2) {
      `j`j`:kotlin::Int`
    }
    for (val ~k~k : Int in 1..2) {
      `k`k`:kotlin::Int`
    }
    for (~l~l : Int in 1..2) {
      `l`l`:kotlin::Int`
      while (true) {
        `l`l
      }
    }
}
