IElementType (ASTNode node) { final ASTNode treeParent = node.getTreeParent(); IElementType parentType = treeParent.getElementType(); if (parentType == PyElementTypes.EXPRESSION_STATEMENT && treeParent.getTreeParent() != null) { final ASTNode parent2 = treeParent.getTreeParent(); if (parent2.getElementType() == PyElementTypes.STATEMENT_LIST && parent2.getTreeParent() != null && treeParent == parent2.getFirstChildNode()) { final ASTNode parent3 = parent2.getTreeParent(); if (parent3.getElementType() == PyElementTypes.FUNCTION_DECLARATION || parent3.getElementType() == PyElementTypes.CLASS_DECLARATION) { return parent3.getElementType(); } } else if (parent2.getElementType() instanceof PyFileElementType) { return parent2.getElementType(); } } return null; }