cython
1# mode: run
2# tag: cpp, no-cpp-locals
3
4cdef extern from *:
5"""
6struct Foo
7{
8
9static const char* bar(int x, int y) {
10return "second";
11}
12
13static const char* bar(int x) {
14return "first";
15}
16
17const char* baz(int x, int y) {
18return "second";
19}
20
21const char* baz(int x) {
22return "first";
23}
24};
25"""
26cppclass Foo:
27@staticmethod
28const char* bar(int x)
29
30@staticmethod
31const char* bar(int x, int y)
32
33const char* baz(int x)
34const char* baz(int x, int y)
35
36def test_normal_method_overload():
37"""
38>>> test_normal_method_overload()
39"""
40cdef Foo f
41assert f.baz(1) == b"first"
42assert f.baz(1, 2) == b"second"
43
44def test_static_method_overload():
45"""
46>>> test_static_method_overload()
47"""
48assert Foo.bar(1) == b"first"
49assert Foo.bar(1, 2) == b"second"
50