69
69
70
70
import com .oracle .graal .python .PythonLanguage ;
71
71
import com .oracle .graal .python .annotations .ArgumentClinic ;
72
+ import com .oracle .graal .python .annotations .ClinicConverterFactory ;
72
73
import com .oracle .graal .python .builtins .Builtin ;
73
74
import com .oracle .graal .python .builtins .CoreFunctions ;
74
75
import com .oracle .graal .python .builtins .PythonBuiltinClassType ;
@@ -1210,11 +1211,16 @@ private byte check(byte b) {
1210
1211
}
1211
1212
return b ;
1212
1213
}
1214
+
1215
+ @ ClinicConverterFactory
1216
+ public static SepExpectByteNode create (@ ClinicConverterFactory .DefaultValue Object defaultValue ) {
1217
+ return BytesBuiltinsFactory .SepExpectByteNodeGen .create (defaultValue );
1218
+ }
1213
1219
}
1214
1220
1215
1221
@ Builtin (name = "hex" , minNumOfPositionalArgs = 1 , parameterNames = {"$self" , "sep" , "bytes_per_sep_group" })
1216
- @ ArgumentClinic (name = "sep" , customConversion = "createSepExpectByteNode " )
1217
- @ ArgumentClinic (name = "bytes_per_sep_group" , customConversion = "createExpectIntNode" , shortCircuitPrimitive = ArgumentClinic . PrimitiveType . Int )
1222
+ @ ArgumentClinic (name = "sep" , conversionClass = SepExpectByteNode . class , defaultValue = "PNone.NO_VALUE " )
1223
+ @ ArgumentClinic (name = "bytes_per_sep_group" , conversionClass = ExpectIntNode . class , defaultValue = "1" )
1218
1224
@ GenerateNodeFactory
1219
1225
abstract static class HexNode extends PythonTernaryClinicBuiltinNode {
1220
1226
@@ -1223,14 +1229,6 @@ protected ArgumentClinicProvider getArgumentClinic() {
1223
1229
return BytesBuiltinsClinicProviders .HexNodeClinicProviderGen .INSTANCE ;
1224
1230
}
1225
1231
1226
- public static SepExpectByteNode createSepExpectByteNode () {
1227
- return BytesBuiltinsFactory .SepExpectByteNodeGen .create (PNone .NO_VALUE );
1228
- }
1229
-
1230
- public static ExpectIntNode createExpectIntNode () {
1231
- return BytesBuiltinsFactory .ExpectIntNodeGen .create (1 );
1232
- }
1233
-
1234
1232
@ Specialization
1235
1233
String none (PBytesLike self , @ SuppressWarnings ("unused" ) PNone sep , @ SuppressWarnings ("unused" ) int bytesPerSepGroup ,
1236
1234
@ Cached .Shared ("p" ) @ Cached ConditionProfile earlyExit ,
@@ -1603,7 +1601,7 @@ protected byte[] make(byte[] self, int len, int width, byte fill) {
1603
1601
}
1604
1602
1605
1603
@ Builtin (name = "replace" , minNumOfPositionalArgs = 3 , parameterNames = {"$self" , "old" , "replacement" , "count" })
1606
- @ ArgumentClinic (name = "count" , customConversion = "createExpectIntNode" , shortCircuitPrimitive = ArgumentClinic . PrimitiveType . Int )
1604
+ @ ArgumentClinic (name = "count" , conversionClass = ExpectIntNode . class , defaultValue = "Integer.MAX_VALUE" )
1607
1605
@ GenerateNodeFactory
1608
1606
abstract static class ReplaceNode extends PythonQuaternaryClinicBuiltinNode {
1609
1607
@@ -1612,10 +1610,6 @@ protected ArgumentClinicProvider getArgumentClinic() {
1612
1610
return BytesBuiltinsClinicProviders .ReplaceNodeClinicProviderGen .INSTANCE ;
1613
1611
}
1614
1612
1615
- public static ExpectIntNode createExpectIntNode () {
1616
- return BytesBuiltinsFactory .ExpectIntNodeGen .create (Integer .MAX_VALUE );
1617
- }
1618
-
1619
1613
@ Specialization
1620
1614
PBytesLike replace (VirtualFrame frame , PBytesLike self , PBytesLike substr , PBytesLike replacement , int count ,
1621
1615
@ Cached SequenceStorageNodes .GetInternalByteArrayNode toInternalBytes ,
@@ -1799,6 +1793,11 @@ int doOthers(VirtualFrame frame, Object value,
1799
1793
protected ExpectIntNode createRec () {
1800
1794
return BytesBuiltinsFactory .ExpectIntNodeGen .create (defaultValue );
1801
1795
}
1796
+
1797
+ @ ClinicConverterFactory (shortCircuitPrimitive = ArgumentClinic .PrimitiveType .Int )
1798
+ public static ExpectIntNode create (@ ClinicConverterFactory .DefaultValue int defaultValue ) {
1799
+ return BytesBuiltinsFactory .ExpectIntNodeGen .create (defaultValue );
1800
+ }
1802
1801
}
1803
1802
1804
1803
public abstract static class ExpectByteLikeNode extends ArgumentCastNode .ArgumentCastNodeWithRaise {
@@ -1832,6 +1831,11 @@ static byte[] doMemView(VirtualFrame frame, PMemoryView bytesLike,
1832
1831
byte [] error (@ SuppressWarnings ("unused" ) VirtualFrame frame , Object value ) {
1833
1832
throw raise (TypeError , ErrorMessages .BYTESLIKE_OBJ_REQUIRED , value );
1834
1833
}
1834
+
1835
+ @ ClinicConverterFactory
1836
+ public static ExpectByteLikeNode create (@ ClinicConverterFactory .DefaultValue byte [] defaultValue ) {
1837
+ return BytesBuiltinsFactory .ExpectByteLikeNodeGen .create (defaultValue );
1838
+ }
1835
1839
}
1836
1840
1837
1841
abstract static class AbstractSplitNode extends PythonTernaryClinicBuiltinNode {
@@ -1938,8 +1942,8 @@ protected static Object asIndex(VirtualFrame frame, Object maxsplit, PythonObjec
1938
1942
}
1939
1943
1940
1944
@ Builtin (name = "split" , minNumOfPositionalArgs = 1 , parameterNames = {"$self" , "sep" , "maxsplit" })
1941
- @ ArgumentClinic (name = "sep" , customConversion = "createExpectByteLikeNode " )
1942
- @ ArgumentClinic (name = "maxsplit" , customConversion = "createExpectIntNode" , shortCircuitPrimitive = ArgumentClinic . PrimitiveType . Int )
1945
+ @ ArgumentClinic (name = "sep" , conversionClass = ExpectByteLikeNode . class , defaultValue = "BytesBuiltins.AbstractSplitNode.WHITESPACE " )
1946
+ @ ArgumentClinic (name = "maxsplit" , conversionClass = ExpectIntNode . class , defaultValue = "Integer.MAX_VALUE" )
1943
1947
@ GenerateNodeFactory
1944
1948
@ TypeSystemReference (PythonArithmeticTypes .class )
1945
1949
abstract static class SplitNode extends AbstractSplitNode {
@@ -1955,14 +1959,6 @@ protected ArgumentClinicProvider getArgumentClinic() {
1955
1959
return BytesBuiltinsClinicProviders .SplitNodeClinicProviderGen .INSTANCE ;
1956
1960
}
1957
1961
1958
- public static ExpectByteLikeNode createExpectByteLikeNode () {
1959
- return BytesBuiltinsFactory .ExpectByteLikeNodeGen .create (WHITESPACE );
1960
- }
1961
-
1962
- public static ExpectIntNode createExpectIntNode () {
1963
- return BytesBuiltinsFactory .ExpectIntNodeGen .create (Integer .MAX_VALUE );
1964
- }
1965
-
1966
1962
@ Override
1967
1963
protected List <byte []> splitWhitespace (byte [] bytes , int len , int maxsplit ) {
1968
1964
int i , j , maxcount = maxsplit ;
@@ -2042,8 +2038,8 @@ protected List<byte[]> splitDelimiter(byte[] bytes, int len, byte[] sep, int max
2042
2038
}
2043
2039
2044
2040
@ Builtin (name = "rsplit" , minNumOfPositionalArgs = 1 , parameterNames = {"self" , "sep" , "maxsplit" })
2045
- @ ArgumentClinic (name = "sep" , customConversion = "createExpectByteLikeNode " )
2046
- @ ArgumentClinic (name = "maxsplit" , customConversion = "createExpectIntNode" , shortCircuitPrimitive = ArgumentClinic . PrimitiveType . Int )
2041
+ @ ArgumentClinic (name = "sep" , conversionClass = ExpectByteLikeNode . class , defaultValue = "BytesBuiltins.AbstractSplitNode.WHITESPACE " )
2042
+ @ ArgumentClinic (name = "maxsplit" , conversionClass = ExpectIntNode . class , defaultValue = "Integer.MAX_VALUE" )
2047
2043
@ GenerateNodeFactory
2048
2044
@ TypeSystemReference (PythonArithmeticTypes .class )
2049
2045
abstract static class RSplitNode extends AbstractSplitNode {
@@ -2059,14 +2055,6 @@ protected ArgumentClinicProvider getArgumentClinic() {
2059
2055
return BytesBuiltinsClinicProviders .RSplitNodeClinicProviderGen .INSTANCE ;
2060
2056
}
2061
2057
2062
- public static ExpectByteLikeNode createExpectByteLikeNode () {
2063
- return BytesBuiltinsFactory .ExpectByteLikeNodeGen .create (WHITESPACE );
2064
- }
2065
-
2066
- public static ExpectIntNode createExpectIntNode () {
2067
- return BytesBuiltinsFactory .ExpectIntNodeGen .create (Integer .MAX_VALUE );
2068
- }
2069
-
2070
2058
@ CompilerDirectives .TruffleBoundary
2071
2059
private static void reverseList (ArrayList <byte []> list ) {
2072
2060
Collections .reverse (list );
0 commit comments