use standard generateTypeInfo() call in pushTypeArguments()

This commit is contained in:
Dmitry Jemerov
2011-07-08 12:09:16 +02:00
parent 4e48e527b1
commit dac522d7a9
3 changed files with 17 additions and 3 deletions
@@ -16,7 +16,6 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
import org.jetbrains.jet.lang.types.JetStandardClasses;
import org.jetbrains.jet.lang.types.JetType;
import org.jetbrains.jet.lang.types.TypeProjection;
import org.jetbrains.jet.lang.types.TypeUtils;
import org.jetbrains.jet.lexer.JetTokens;
import org.objectweb.asm.Label;
import org.objectweb.asm.MethodVisitor;
@@ -1447,8 +1446,7 @@ public class ExpressionCodegen extends JetVisitor {
private void pushTypeArguments(JetCall expression) {
for (JetTypeProjection jetTypeArgument : expression.getTypeArguments()) {
JetType typeArgument = bindingContext.resolveTypeReference(jetTypeArgument.getTypeReference());
// TODO is the makeNullable() call correct here?
ClassCodegen.newTypeInfo(v, typeArgument.isNullable(), typeMapper.mapType(TypeUtils.makeNullable(typeArgument)));
generateTypeInfo(typeArgument);
}
}
@@ -0,0 +1,12 @@
class Foo() { }
class Bar() { }
fun isInstance<T>(obj: Any?) = obj is T
fun isInstance2<T>(obj: Any?) = isInstance<T>(obj)
fun box(): String {
if (! isInstance2<Foo>(Foo())) return "fail 1"
if (isInstance2<Bar>(Foo())) return "fail 2"
return "OK"
}
@@ -100,6 +100,10 @@ public class TypeInfoTest extends CodegenTestCase {
blackBoxFile("typeInfo/genericFunction.jet");
}
public void testForwardTypeParameter() throws Exception {
blackBoxFile("typeInfo/forwardTypeParameter.jet");
}
private Runnable newRunnable() {
return new Runnable() {
@Override