diff --git a/extra_tests/snippets/builtin_type.py b/extra_tests/snippets/builtin_type.py index 4f9a47ab1..c88ea0ab8 100644 --- a/extra_tests/snippets/builtin_type.py +++ b/extra_tests/snippets/builtin_type.py @@ -109,3 +109,17 @@ assert MyTypeWithMethod().N.s.__qualname__ == 'MyTypeWithMethod.N.s' assert repr(str.replace) == "" assert repr(str.replace) == str(str.replace) assert repr(int.to_bytes) == "" + + +# Regression to +# https://github.com/RustPython/RustPython/issues/2788 + +assert iter.__qualname__ == iter.__name__ == 'iter' +assert max.__qualname__ == max.__name__ == 'max' +assert min.__qualname__ == min.__name__ == 'min' + + +def custom_func(): + pass + +assert custom_func.__qualname__ == 'custom_func' diff --git a/vm/src/builtins/builtinfunc.rs b/vm/src/builtins/builtinfunc.rs index 457da761d..62b934f8c 100644 --- a/vm/src/builtins/builtinfunc.rs +++ b/vm/src/builtins/builtinfunc.rs @@ -118,6 +118,10 @@ impl PyBuiltinFunction { self.value.name.clone() } #[pyproperty(magic)] + fn qualname(&self) -> PyStrRef { + self.name() + } + #[pyproperty(magic)] fn doc(&self) -> Option { self.value.doc.clone() }