Skip to content

Commit 5e7c3e7

Browse files
committed
ForeignObject add __eq__ node.
- this allows testing if foreign null values are None using the "==" op
1 parent 207aaca commit 5e7c3e7

File tree

2 files changed

+10
-10
lines changed

2 files changed

+10
-10
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/foreign/TruffleObjectBuiltins.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
import static com.oracle.graal.python.nodes.SpecialMethodNames.__DELATTR__;
3333
import static com.oracle.graal.python.nodes.SpecialMethodNames.__DELITEM__;
3434
import static com.oracle.graal.python.nodes.SpecialMethodNames.__DIR__;
35+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__EQ__;
3536
import static com.oracle.graal.python.nodes.SpecialMethodNames.__FLOORDIV__;
3637
import static com.oracle.graal.python.nodes.SpecialMethodNames.__GETITEM__;
3738
import static com.oracle.graal.python.nodes.SpecialMethodNames.__GE__;
@@ -43,6 +44,7 @@
4344
import static com.oracle.graal.python.nodes.SpecialMethodNames.__LT__;
4445
import static com.oracle.graal.python.nodes.SpecialMethodNames.__MUL__;
4546
import static com.oracle.graal.python.nodes.SpecialMethodNames.__NEW__;
47+
import static com.oracle.graal.python.nodes.SpecialMethodNames.__NE__;
4648
import static com.oracle.graal.python.nodes.SpecialMethodNames.__RADD__;
4749
import static com.oracle.graal.python.nodes.SpecialMethodNames.__REPR__;
4850
import static com.oracle.graal.python.nodes.SpecialMethodNames.__RFLOORDIV__;
@@ -716,6 +718,14 @@ protected GeNode() {
716718
}
717719
}
718720

721+
@Builtin(name = __EQ__, fixedNumOfPositionalArgs = 2)
722+
@GenerateNodeFactory
723+
public abstract static class EqNode extends ForeignBinaryComparisonNode {
724+
protected EqNode() {
725+
super(BinaryComparisonNode.create(__EQ__, __NE__, "=="));
726+
}
727+
}
728+
719729
@Builtin(name = __ITER__, fixedNumOfPositionalArgs = 1)
720730
@GenerateNodeFactory
721731
public abstract static class IterNode extends UnboxNode {

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/nodes/expression/IsNode.java

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
*/
4141
package com.oracle.graal.python.nodes.expression;
4242

43-
import com.oracle.graal.python.builtins.objects.PNone;
4443
import com.oracle.graal.python.builtins.objects.cext.CExtNodes;
4544
import com.oracle.graal.python.builtins.objects.cext.PythonNativeObject;
4645
import com.oracle.graal.python.builtins.objects.ints.PInt;
@@ -49,10 +48,7 @@
4948
import com.oracle.truffle.api.dsl.Fallback;
5049
import com.oracle.truffle.api.dsl.ImportStatic;
5150
import com.oracle.truffle.api.dsl.Specialization;
52-
import com.oracle.truffle.api.interop.ForeignAccess;
5351
import com.oracle.truffle.api.interop.Message;
54-
import com.oracle.truffle.api.interop.TruffleObject;
55-
import com.oracle.truffle.api.nodes.Node;
5652

5753
@ImportStatic(Message.class)
5854
public abstract class IsNode extends BinaryOpNode {
@@ -178,12 +174,6 @@ boolean doNative(PythonNativeObject left, PythonNativeObject right,
178174
return isNode.execute(left, right);
179175
}
180176

181-
@Specialization(guards = "isForeignObject(left)")
182-
boolean doForeignObject(TruffleObject left, @SuppressWarnings("unused") PNone none,
183-
@Cached("IS_NULL.createNode()") Node isNullNode) {
184-
return ForeignAccess.sendIsNull(isNullNode, left);
185-
}
186-
187177
@Fallback
188178
boolean doGeneric(Object left, Object right) {
189179
return left == right;

0 commit comments

Comments
 (0)