mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Added test for MRO in complicated diamond hierarchy (PY-4183)
This commit is contained in:
@@ -0,0 +1,30 @@
|
||||
class A(object):
|
||||
pass
|
||||
|
||||
|
||||
class B(A):
|
||||
pass
|
||||
|
||||
|
||||
class C(A):
|
||||
pass
|
||||
|
||||
|
||||
class D(A):
|
||||
pass
|
||||
|
||||
|
||||
class E(B):
|
||||
pass
|
||||
|
||||
|
||||
class F(B):
|
||||
pass
|
||||
|
||||
|
||||
class G(C, D):
|
||||
pass
|
||||
|
||||
|
||||
class H(E, F, G):
|
||||
pass
|
||||
@@ -47,6 +47,11 @@ public class PyClassMROTest extends PyTestCase {
|
||||
assertMRO(getClass("G"), "E", "F", "object");
|
||||
}
|
||||
|
||||
// PY-4183
|
||||
public void testComplicatedDiamond() {
|
||||
assertMRO(getClass("H"), "E", "F", "B", "G", "C", "D", "A", "object");
|
||||
}
|
||||
|
||||
public void assertMRO(@NotNull PyClass cls, @NotNull String... mro) {
|
||||
final List<PyClassLikeType> types = cls.getAncestorTypes(TypeEvalContext.fastStubOnly(null));
|
||||
final List<String> classNames = new ArrayList<String>();
|
||||
|
||||
Reference in New Issue
Block a user