fix for KT-796/797 candidate/resultingDescriptor misuse

This commit is contained in:
Alex Tkachman
2011-12-12 16:21:02 +02:00
parent 8f46153d39
commit c45d08b7e5
3 changed files with 13 additions and 1 deletions
@@ -2199,7 +2199,7 @@ public class ExpressionCodegen extends JetVisitor<StackValue, StackValue> {
if(getterDescriptor.getReceiverParameter().exists()) {
index++;
}
for (TypeParameterDescriptor typeParameterDescriptor : getterDescriptor.getTypeParameters()) {
for (TypeParameterDescriptor typeParameterDescriptor : resolvedGetCall.getCandidateDescriptor().getTypeParameters()) {
if(typeParameterDescriptor.isReified()) {
generateTypeInfo(resolvedGetCall.getTypeArguments().get(typeParameterDescriptor), null);
index++;
@@ -0,0 +1,8 @@
fun <T> Array<T>?.get(i : Int?) = this.sure().get(i.sure())
fun <T> array(vararg t : T) : Array<T> = t
fun box() : String {
val a : Array<String>? = array<String>("Str", "Str2")
val i : Int? = 1
return if(a[i] == "Str2") "OK" else "fail"
}
@@ -74,4 +74,8 @@ public class VarArgTest extends CodegenTestCase {
createEnvironmentWithFullJdk();
blackBoxFile("regressions/kt581.jet");
}
public void testKt797() {
blackBoxFile("regressions/kt796_797.jet");
}
}