KT-3553 Problem with propagation for extension functions
#KT-3553 fixed
This commit is contained in:
+18
@@ -0,0 +1,18 @@
|
||||
package test
|
||||
|
||||
public trait Sub : test.Super1, test.Super2 {
|
||||
public abstract override /*1*/ fun bar(/*0*/ vararg p: jet.String /*jet.Array<jet.String>*/): jet.Unit
|
||||
public abstract override /*1*/ fun foo(/*0*/ p: jet.String): jet.Unit
|
||||
public abstract override /*1*/ /*fake_override*/ fun jet.Array<jet.String>.bar(): jet.Unit
|
||||
public abstract override /*1*/ /*fake_override*/ fun jet.String.foo(): jet.Unit
|
||||
}
|
||||
|
||||
public trait Super1 {
|
||||
public abstract fun jet.Array<jet.String>.bar(): jet.Unit
|
||||
public abstract fun jet.String.foo(): jet.Unit
|
||||
}
|
||||
|
||||
public trait Super2 {
|
||||
public abstract fun bar(/*0*/ vararg p: jet.String /*jet.Array<jet.String>*/): jet.Unit
|
||||
public abstract fun foo(/*0*/ p: jet.String): jet.Unit
|
||||
}
|
||||
+11
@@ -0,0 +1,11 @@
|
||||
package test;
|
||||
|
||||
import org.jetbrains.jet.jvm.compiler.annotation.ExpectLoadError;
|
||||
|
||||
public interface Sub extends Super1, Super2 {
|
||||
@ExpectLoadError("Incompatible super methods: some are extension functions, some are not")
|
||||
void foo(String p);
|
||||
|
||||
@ExpectLoadError("Incompatible super methods: some are extension functions, some are not|Incompatible super methods: some have vararg parameter, some have not")
|
||||
void bar(String... p);
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package test
|
||||
|
||||
public trait Super1 {
|
||||
public fun String.foo()
|
||||
public fun Array<String>.bar()
|
||||
}
|
||||
|
||||
public trait Super2 {
|
||||
public fun foo(p: String)
|
||||
public fun bar(vararg p: String)
|
||||
}
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
package test
|
||||
|
||||
public open class Sub : test.Super {
|
||||
public constructor Sub()
|
||||
public open override /*1*/ fun jet.String.bar(/*0*/ param: jet.String): jet.String
|
||||
public final override /*1*/ /*fake_override*/ fun jet.String.foo(): jet.Unit
|
||||
}
|
||||
|
||||
public open class Super {
|
||||
public constructor Super()
|
||||
public abstract fun jet.String.bar(/*0*/ p: jet.String): jet.Unit
|
||||
public final fun jet.String.foo(): jet.Unit
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
package test;
|
||||
|
||||
public class Sub extends Super {
|
||||
public String bar(String recv, String param) {
|
||||
}
|
||||
}
|
||||
+6
@@ -0,0 +1,6 @@
|
||||
package test
|
||||
|
||||
public open class Super {
|
||||
public fun String.foo() = Unit.VALUE
|
||||
public abstract fun String.bar(p: String)
|
||||
}
|
||||
Reference in New Issue
Block a user