|
|
@@ -1231,17 +1231,18 @@ void init_builtins(VM* _vm) {
|
|
|
return VAR(Property(args[1], vm->None, ""));
|
|
|
}else if(args.size() == 1+2){
|
|
|
return VAR(Property(args[1], args[2], ""));
|
|
|
+ }else if(args.size() == 1+3){
|
|
|
+ return VAR(Property(args[1], args[2], CAST(Str, args[3])));
|
|
|
}
|
|
|
- vm->TypeError("property() takes at most 2 arguments");
|
|
|
+ vm->TypeError("property() takes at most 3 arguments");
|
|
|
return vm->None;
|
|
|
});
|
|
|
|
|
|
- _vm->bind_property(_vm->_t(_vm->tp_property), "type_hint: str", [](VM* vm, ArgsView args){
|
|
|
+ _vm->bind_property(_vm->_t(_vm->tp_property), "__signature__", [](VM* vm, ArgsView args){
|
|
|
Property& self = _CAST(Property&, args[0]);
|
|
|
- return VAR(self.type_hint);
|
|
|
+ return VAR(self.signature);
|
|
|
});
|
|
|
|
|
|
-
|
|
|
_vm->bind_property(_vm->_t(_vm->tp_function), "__doc__", [](VM* vm, ArgsView args) {
|
|
|
Function& func = _CAST(Function&, args[0]);
|
|
|
return VAR(func.decl->docstring);
|
|
|
@@ -1261,7 +1262,7 @@ void init_builtins(VM* _vm) {
|
|
|
_vm->bind_property(_vm->_t(_vm->tp_native_func), "__signature__", [](VM* vm, ArgsView args) {
|
|
|
NativeFunc& func = _CAST(NativeFunc&, args[0]);
|
|
|
if(func.decl != nullptr) return VAR(func.decl->signature);
|
|
|
- return VAR("unknown(*args, **kwargs)");
|
|
|
+ return VAR("");
|
|
|
});
|
|
|
|
|
|
RangeIter::register_class(_vm, _vm->builtins);
|