Supported propagation of vararg mark.
#KT-2776 in progress
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
package test;
|
||||
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import java.lang.String;
|
||||
import java.util.List;
|
||||
|
||||
import jet.runtime.typeinfo.KotlinSignature;
|
||||
import org.jetbrains.jet.jvm.compiler.annotation.ExpectLoadError;
|
||||
|
||||
public interface TwoSuperclassesVarargAndNot {
|
||||
public interface Super1 {
|
||||
void foo(String... s);
|
||||
}
|
||||
|
||||
public interface Super2 {
|
||||
void foo(String[] s);
|
||||
}
|
||||
|
||||
public interface Sub extends Super1, Super2 {
|
||||
@ExpectLoadError("Incompatible projection kinds in type arguments of super methods' return types: [String?, out String?]|" +
|
||||
"Incompatible super methods: some have vararg parameter, some have not|" +
|
||||
"Incompatible types in superclasses: [Array<String?>, Array<out String?>?]")
|
||||
void foo(String[] s);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
namespace test
|
||||
|
||||
public abstract trait test.TwoSuperclassesVarargAndNot : java.lang.Object {
|
||||
public abstract trait test.TwoSuperclassesVarargAndNot.Sub : test.TwoSuperclassesVarargAndNot.Super1, test.TwoSuperclassesVarargAndNot.Super2 {
|
||||
public abstract override /*1*/ fun foo(/*0*/ p0: jet.Array<out jet.String?>?): jet.Tuple0
|
||||
public abstract override /*1*/ /*fake_override*/ fun foo(/*0*/ vararg p0: jet.String? /*jet.Array<jet.String?>*/): jet.Tuple0
|
||||
}
|
||||
public abstract trait test.TwoSuperclassesVarargAndNot.Super1 : java.lang.Object {
|
||||
public abstract fun foo(/*0*/ vararg p0: jet.String? /*jet.Array<jet.String?>*/): jet.Tuple0
|
||||
}
|
||||
public abstract trait test.TwoSuperclassesVarargAndNot.Super2 : java.lang.Object {
|
||||
public abstract fun foo(/*0*/ p0: jet.Array<out jet.String?>?): jet.Tuple0
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user