use standard generateTypeInfo() call in pushTypeArguments()
This commit is contained in:
@@ -16,7 +16,6 @@ import org.jetbrains.jet.lang.resolve.BindingContext;
|
|||||||
import org.jetbrains.jet.lang.types.JetStandardClasses;
|
import org.jetbrains.jet.lang.types.JetStandardClasses;
|
||||||
import org.jetbrains.jet.lang.types.JetType;
|
import org.jetbrains.jet.lang.types.JetType;
|
||||||
import org.jetbrains.jet.lang.types.TypeProjection;
|
import org.jetbrains.jet.lang.types.TypeProjection;
|
||||||
import org.jetbrains.jet.lang.types.TypeUtils;
|
|
||||||
import org.jetbrains.jet.lexer.JetTokens;
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
import org.objectweb.asm.Label;
|
import org.objectweb.asm.Label;
|
||||||
import org.objectweb.asm.MethodVisitor;
|
import org.objectweb.asm.MethodVisitor;
|
||||||
@@ -1447,8 +1446,7 @@ public class ExpressionCodegen extends JetVisitor {
|
|||||||
private void pushTypeArguments(JetCall expression) {
|
private void pushTypeArguments(JetCall expression) {
|
||||||
for (JetTypeProjection jetTypeArgument : expression.getTypeArguments()) {
|
for (JetTypeProjection jetTypeArgument : expression.getTypeArguments()) {
|
||||||
JetType typeArgument = bindingContext.resolveTypeReference(jetTypeArgument.getTypeReference());
|
JetType typeArgument = bindingContext.resolveTypeReference(jetTypeArgument.getTypeReference());
|
||||||
// TODO is the makeNullable() call correct here?
|
generateTypeInfo(typeArgument);
|
||||||
ClassCodegen.newTypeInfo(v, typeArgument.isNullable(), typeMapper.mapType(TypeUtils.makeNullable(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");
|
blackBoxFile("typeInfo/genericFunction.jet");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void testForwardTypeParameter() throws Exception {
|
||||||
|
blackBoxFile("typeInfo/forwardTypeParameter.jet");
|
||||||
|
}
|
||||||
|
|
||||||
private Runnable newRunnable() {
|
private Runnable newRunnable() {
|
||||||
return new Runnable() {
|
return new Runnable() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
Reference in New Issue
Block a user