Skip to content

Commit 88fe44b

Browse files
committed
[GR-9752] Missing list.clear method.
1 parent b07c135 commit 88fe44b

File tree

2 files changed

+17
-2
lines changed
  • graalpython

2 files changed

+17
-2
lines changed

graalpython/com.oracle.graal.python.test/src/tests/list_tests.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ def test_reverse(self):
447447
self.assertEqual(u, u2)
448448
449449
self.assertRaises(TypeError, u.reverse, 42)
450-
450+
'''
451451
def test_clear(self):
452452
u = self.type2test([2, 3, 4])
453453
u.clear()
@@ -465,7 +465,6 @@ def test_clear(self):
465465

466466
self.assertRaises(TypeError, u.clear, None)
467467

468-
'''
469468
def test_copy(self):
470469
u = self.type2test([1, 2, 3])
471470
v = u.copy()

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/objects/list/ListBuiltins.java

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@
7171
import com.oracle.graal.python.runtime.sequence.SequenceUtil.NormalizeIndexNode;
7272
import com.oracle.graal.python.runtime.sequence.storage.BasicSequenceStorage;
7373
import com.oracle.graal.python.runtime.sequence.storage.DoubleSequenceStorage;
74+
import com.oracle.graal.python.runtime.sequence.storage.EmptySequenceStorage;
7475
import com.oracle.graal.python.runtime.sequence.storage.IntSequenceStorage;
7576
import com.oracle.graal.python.runtime.sequence.storage.ListSequenceStorage;
7677
import com.oracle.graal.python.runtime.sequence.storage.LongSequenceStorage;
@@ -938,6 +939,21 @@ long count(PList self, Object value,
938939

939940
}
940941

942+
// list.clear()
943+
@Builtin(name = "clear", fixedNumOfArguments = 1)
944+
@GenerateNodeFactory
945+
public abstract static class ListClearNode extends PythonBuiltinNode {
946+
947+
@Specialization
948+
public PNone clear(PList list) {
949+
if (list.len() > 0) {
950+
list.setSequenceStorage(new EmptySequenceStorage());
951+
}
952+
return PNone.NONE;
953+
}
954+
955+
}
956+
941957
// list.reverse()
942958
@Builtin(name = "reverse", fixedNumOfArguments = 1)
943959
@GenerateNodeFactory

0 commit comments

Comments
 (0)