JS backend: fix get mangling name for generic methods with multiply upper bounds

This commit is contained in:
Michael Nedzelsky
2014-10-02 13:08:34 +04:00
parent 9fabdf4587
commit b84e5969e2
3 changed files with 40 additions and 3 deletions
@@ -0,0 +1,29 @@
package foo
trait TraitA
trait TraitB
public open abstract class Node<T : TraitA>() where T : TraitB {
public abstract fun bar(arg: T): String
public abstract fun bar(arg: TraitA): String
public abstract fun bar(arg: TraitB): String
}
class ClassAB : TraitA, TraitB
public class MyNode : Node<ClassAB>() {
override fun bar(arg: ClassAB): String = "MyNode.bar(ClassAB)"
override fun bar(arg: TraitA): String = "MyNode.bar(TraitA)"
override fun bar(arg: TraitB): String = "MyNode.bar(TraitB)"
}
fun box(): String {
var node = MyNode()
assertEquals("MyNode.bar(ClassAB)", node.bar(ClassAB()))
assertEquals("MyNode.bar(TraitA)", node.bar(ClassAB(): TraitA))
assertEquals("MyNode.bar(TraitB)", node.bar(ClassAB(): TraitB))
return "OK"
}