Skip to content

Commit 46c5abe

Browse files
committed
ItertoolsModuleBuiltins.RepeatNode missing long specialization
1 parent d51d6e5 commit 46c5abe

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

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

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@
7575
import com.oracle.graal.python.builtins.objects.itertools.PZipLongest;
7676
import com.oracle.graal.python.builtins.objects.type.TypeNodes.IsTypeNode;
7777
import com.oracle.graal.python.lib.PyCallableCheckNode;
78+
import com.oracle.graal.python.lib.PyLongAsIntNode;
7879
import com.oracle.graal.python.lib.PyNumberAsSizeNode;
7980
import com.oracle.graal.python.lib.PyObjectGetIter;
8081
import com.oracle.graal.python.lib.PyObjectLookupAttr;
@@ -773,8 +774,18 @@ Object construct(Object cls, Object object, int times,
773774
return self;
774775
}
775776

777+
@Specialization(guards = {"isTypeNode.execute(cls)", "times >= 0"})
778+
Object construct(VirtualFrame frame, Object cls, Object object, long times,
779+
@Cached PyLongAsIntNode asIntNode,
780+
@SuppressWarnings("unused") @Cached IsTypeNode isTypeNode) {
781+
PRepeat self = factory().createRepeat(cls);
782+
self.setElement(object);
783+
self.setCnt(asIntNode.execute(frame, times));
784+
return self;
785+
}
786+
776787
@SuppressWarnings("unused")
777-
@Specialization(guards = {"isTypeNode.execute(cls)", "!isNone(times)", "!isInt(times)"})
788+
@Specialization(guards = {"isTypeNode.execute(cls)", "!isNone(times)", "!isInt(times)", "!isLong(times)"})
778789
Object construct(Object cls, Object object, Object times,
779790
@SuppressWarnings("unused") @Cached IsTypeNode isTypeNode) {
780791
throw raise(TypeError, S_EXPECTED_GOT_P, "integer", times);

0 commit comments

Comments
 (0)