PyType (@NotNull TypeEvalContext context) { PyExpression qualifier = getQualifier(); if (context.allowDataFlow(this) && qualifier != null) { PyExpression next = qualifier; while (next != null) { qualifier = next; next = qualifier instanceof PyQualifiedExpression ? ((PyQualifiedExpression)qualifier).getQualifier() : null; } final ScopeOwner scopeOwner = ScopeUtil.getScopeOwner(this); final QualifiedName qname = asQualifiedName(); if (qname != null && scopeOwner != null) { return getTypeByControlFlow(qname.toString(), context, qualifier, scopeOwner); } } return null; }