Ref<PyType> (@NotNull TypeEvalContext context) { if (!context.maySwitchToAST(this)) { return null; } final PyType maybe_type = PyUtil.getSpecialAttributeType(this, context); if (maybe_type != null) return Ref.create(maybe_type); final Ref<PyType> typeOfProperty = getTypeOfProperty(context); if (typeOfProperty != null) { return typeOfProperty; } final PyType typeByControlFlow = getQualifiedReferenceTypeByControlFlow(context); if (typeByControlFlow != null) { return Ref.create(typeByControlFlow); } return null; }