fix for tests broken by previous commit
This commit is contained in:
@@ -22,6 +22,7 @@ import org.jetbrains.jet.codegen.ExpressionCodegen;
|
|||||||
import org.jetbrains.jet.codegen.GenerationState;
|
import org.jetbrains.jet.codegen.GenerationState;
|
||||||
import org.jetbrains.jet.codegen.JetTypeMapper;
|
import org.jetbrains.jet.codegen.JetTypeMapper;
|
||||||
import org.jetbrains.jet.codegen.StackValue;
|
import org.jetbrains.jet.codegen.StackValue;
|
||||||
|
import org.jetbrains.jet.lang.psi.JetBinaryExpression;
|
||||||
import org.jetbrains.jet.lang.psi.JetCallExpression;
|
import org.jetbrains.jet.lang.psi.JetCallExpression;
|
||||||
import org.jetbrains.jet.lang.psi.JetExpression;
|
import org.jetbrains.jet.lang.psi.JetExpression;
|
||||||
import org.jetbrains.jet.lang.resolve.BindingContext;
|
import org.jetbrains.jet.lang.resolve.BindingContext;
|
||||||
@@ -38,8 +39,16 @@ import java.util.List;
|
|||||||
public class IdentityEquals implements IntrinsicMethod {
|
public class IdentityEquals implements IntrinsicMethod {
|
||||||
@Override
|
@Override
|
||||||
public StackValue generate(ExpressionCodegen codegen, InstructionAdapter v, Type expectedType, PsiElement element, List<JetExpression> arguments, StackValue receiver, @NotNull GenerationState state) {
|
public StackValue generate(ExpressionCodegen codegen, InstructionAdapter v, Type expectedType, PsiElement element, List<JetExpression> arguments, StackValue receiver, @NotNull GenerationState state) {
|
||||||
receiver.put(JetTypeMapper.TYPE_OBJECT, v);
|
if(element instanceof JetCallExpression) {
|
||||||
codegen.gen(arguments.get(0)).put(JetTypeMapper.TYPE_OBJECT, v);
|
receiver.put(JetTypeMapper.TYPE_OBJECT, v);
|
||||||
|
codegen.gen(arguments.get(0)).put(JetTypeMapper.TYPE_OBJECT, v);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
assert element instanceof JetBinaryExpression;
|
||||||
|
JetBinaryExpression e = (JetBinaryExpression)element;
|
||||||
|
codegen.gen(e.getLeft()).put(JetTypeMapper.TYPE_OBJECT, v);
|
||||||
|
codegen.gen(e.getRight()).put(JetTypeMapper.TYPE_OBJECT, v);
|
||||||
|
}
|
||||||
return StackValue.cmp(JetTokens.EQEQEQ, JetTypeMapper.TYPE_OBJECT);
|
return StackValue.cmp(JetTokens.EQEQEQ, JetTypeMapper.TYPE_OBJECT);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
val f : (Any) -> String = { it.toString() }
|
val f : (Any) -> String = { it.toString() }
|
||||||
|
|
||||||
fun box() : String {
|
fun box() : String {
|
||||||
if(!(f identityEquals f)) return "fail"
|
if(!(f identityEquals f)) return "fail 1"
|
||||||
if(!(f == f)) return "fail"
|
if(!(f == f)) return "fail 2"
|
||||||
if(!(f equals f)) return "fail"
|
if(!(f equals f)) return "fail 3"
|
||||||
return "OK"
|
return "OK"
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user