import `java::java`java.* import java.`java::java.util`util.* fun foo(~a~a : `std::Array`Array<`std::Int`Int>) : `java::java.util.List`List { `a`a.`std::Array.get(Int)`get(1) `a`a.`std::Array.set(Int, Int)`set(1, 1) } fun foo(o : `java::java.lang.Object`Object, l : `java::java.util`util.`java::java.util.List`List) : `java::java.util.List`List {} ~A~class A() { fun f(a : `java::java.util`util.`java::java.util.List`List) {} fun f(a : `java::java.util.List`List) {} } class B : `java::java.lang.Object`Object { fun f(a : `java::java.util`util.`java::java.util.List`List) {} fun f(a : `java::java.util.List`List) {} ~foo~fun foo(abc : `A`A) : `A`A { `java::java`java.`java::java.lang`lang.`java::java.lang.System`System.`java::java.lang.System.out`out.`java::java.io.PrintStream.print(Int)`print(1) `java::java.util`util.`java::java.util.Collections`Collections.`java::java.util.Collections.emptyList()`emptyList() `java::java`java.`!`Foo `java::java.util.Collections`Collections.`java::java.util.Collections.emptyList()`emptyList() } fun barrr() : `std::Int`Int { `foo`foo(`A`A()) } }