Skip to content

Commit 1850c3d

Browse files
committed
GcBuiltins add simple implementation for gc.is_tracked(obj)
1 parent 09f45d6 commit 1850c3d

File tree

1 file changed

+23
-0
lines changed

1 file changed

+23
-0
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/GcModuleBuiltins.java

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,12 @@
3333
import com.oracle.graal.python.builtins.CoreFunctions;
3434
import com.oracle.graal.python.builtins.PythonBuiltins;
3535
import com.oracle.graal.python.builtins.objects.PNone;
36+
import com.oracle.graal.python.builtins.objects.cext.PythonNativeClass;
37+
import com.oracle.graal.python.builtins.objects.cext.PythonNativeObject;
3638
import com.oracle.graal.python.builtins.objects.tuple.PTuple;
3739
import com.oracle.graal.python.nodes.function.PythonBuiltinNode;
3840
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
41+
import com.oracle.truffle.api.dsl.Fallback;
3942
import com.oracle.truffle.api.dsl.GenerateNodeFactory;
4043
import com.oracle.truffle.api.dsl.Specialization;
4144

@@ -75,4 +78,24 @@ public PTuple count() {
7578
return factory().createTuple(new Object[]{count, 0, 0});
7679
}
7780
}
81+
82+
@Builtin(name = "is_tracked", fixedNumOfArguments = 1)
83+
@GenerateNodeFactory
84+
abstract static class GcIsTrackedNode extends PythonBuiltinNode {
85+
@Specialization
86+
public boolean isTracked(@SuppressWarnings("unused") PythonNativeObject object) {
87+
return false;
88+
}
89+
90+
@Specialization
91+
public boolean isTracked(@SuppressWarnings("unused") PythonNativeClass object) {
92+
// TODO: this is not correct
93+
return true;
94+
}
95+
96+
@Fallback
97+
public boolean isTracked(@SuppressWarnings("unused") Object object) {
98+
return true;
99+
}
100+
}
78101
}

0 commit comments

Comments
 (0)