forked from Rust-related/RustPython
46 lines
482 B
Python
46 lines
482 B
Python
class MC(type):
|
|
pass
|
|
|
|
class MC2(MC):
|
|
pass
|
|
|
|
class MC3(type):
|
|
pass
|
|
|
|
class A():
|
|
pass
|
|
|
|
assert type(A) == type
|
|
|
|
class B(metaclass=MC):
|
|
pass
|
|
|
|
assert type(B) == MC
|
|
|
|
class C(B):
|
|
pass
|
|
|
|
assert type(C) == MC
|
|
|
|
class D(metaclass=MC2):
|
|
pass
|
|
|
|
assert type(D) == MC2
|
|
|
|
class E(C, D, metaclass=MC):
|
|
pass
|
|
|
|
assert type(E) == MC2
|
|
|
|
class F(metaclass=MC3):
|
|
pass
|
|
|
|
assert type(F) == MC3
|
|
|
|
try:
|
|
class G(D, E, F):
|
|
pass
|
|
assert False
|
|
except TypeError:
|
|
pass
|