Added PyClass.getMetaClassExpression()

This commit is contained in:
Andrey Vlasovskikh
2014-01-21 00:33:01 +04:00
parent 1ee1c255cb
commit cb9e823882
2 changed files with 10 additions and 0 deletions
@@ -222,4 +222,13 @@ public interface PyClass extends PsiNameIdentifierOwner, PyStatement, NameDefine
*/
@Nullable
PyClassLikeType getMetaClassType(@NotNull TypeEvalContext context);
/**
* Returns the expression that defines the metaclass of the class.
*
* It might be defined outside the class in case of file-level __metaclass__ attributes.
* Operates at the AST level.
*/
@Nullable
PyExpression getMetaClassExpression();
}
@@ -1181,6 +1181,7 @@ public class PyClassImpl extends PyPresentableElementImpl<PyClassStub> implement
}
@Nullable
@Override
public PyExpression getMetaClassExpression() {
final LanguageLevel level = LanguageLevel.forElement(this);
if (level.isAtLeast(LanguageLevel.PYTHON30)) {