126
126
import com .oracle .graal .python .nodes .function .builtins .PythonBinaryClinicBuiltinNode ;
127
127
import com .oracle .graal .python .nodes .function .builtins .PythonTernaryBuiltinNode ;
128
128
import com .oracle .graal .python .nodes .function .builtins .PythonUnaryBuiltinNode ;
129
+ import com .oracle .graal .python .nodes .function .builtins .PythonUnaryClinicBuiltinNode ;
129
130
import com .oracle .graal .python .nodes .function .builtins .clinic .ArgumentClinicProvider ;
130
131
import com .oracle .graal .python .nodes .truffle .PythonArithmeticTypes ;
131
132
import com .oracle .graal .python .nodes .util .CannotCastException ;
@@ -1641,10 +1642,11 @@ private Object rename(VirtualFrame frame, String src, String dst) {
1641
1642
public abstract static class ReplaceNode extends RenameNode {
1642
1643
}
1643
1644
1644
- @ Builtin (name = "urandom" , minNumOfPositionalArgs = 1 )
1645
+ @ Builtin (name = "urandom" , minNumOfPositionalArgs = 1 , numOfPositionalOnlyArgs = 1 , parameterNames = {"size" })
1646
+ @ ArgumentClinic (name = "size" , conversion = ClinicConversion .Index , defaultValue = "0" )
1645
1647
@ GenerateNodeFactory
1646
1648
@ TypeSystemReference (PythonArithmeticTypes .class )
1647
- abstract static class URandomNode extends PythonBuiltinNode {
1649
+ abstract static class URandomNode extends PythonUnaryClinicBuiltinNode {
1648
1650
private static SecureRandom secureRandom ;
1649
1651
1650
1652
private static SecureRandom createRandomInstance () {
@@ -1666,9 +1668,9 @@ PBytes urandom(int size) {
1666
1668
return factory ().createBytes (bytes );
1667
1669
}
1668
1670
1669
- @ Fallback
1670
- Object urandomError ( Object size ) {
1671
- throw raise ( TypeError , ErrorMessages . ARG_EXPECTED_GOT , "integer" , size ) ;
1671
+ @ Override
1672
+ protected ArgumentClinicProvider getArgumentClinic ( ) {
1673
+ return PosixModuleBuiltinsClinicProviders . URandomNodeClinicProviderGen . INSTANCE ;
1672
1674
}
1673
1675
}
1674
1676
0 commit comments