From 9fa9bfd8467c17aee000a3f15f1f234a5c43b395 Mon Sep 17 00:00:00 2001 From: Mikhail Golubev Date: Mon, 4 Aug 2014 20:15:18 +0400 Subject: [PATCH] Make PyStatementPart interface extend newer PyStatementListContainer Both interfaces provide the same method getStatementList --- .../src/com/jetbrains/python/psi/PyElsePart.java | 7 ------- .../com/jetbrains/python/psi/PyStatementPart.java | 6 +++--- .../enterProcessors/PyPlainEnterProcessor.java | 9 ++++----- .../jetbrains/python/psi/impl/PyElsePartImpl.java | 14 ++------------ .../python/psi/impl/PyStatementPartImpl.java | 14 ++++++-------- 5 files changed, 15 insertions(+), 35 deletions(-) diff --git a/python/psi-api/src/com/jetbrains/python/psi/PyElsePart.java b/python/psi-api/src/com/jetbrains/python/psi/PyElsePart.java index c32916242154..41b715f99aa8 100644 --- a/python/psi-api/src/com/jetbrains/python/psi/PyElsePart.java +++ b/python/psi-api/src/com/jetbrains/python/psi/PyElsePart.java @@ -15,17 +15,10 @@ */ package com.jetbrains.python.psi; -import org.jetbrains.annotations.Nullable; - /** * The 'else:' part of various compound statements. * User: dcheryasov * Date: Mar 15, 2009 9:34:51 PM */ public interface PyElsePart extends PyStatementPart { - /** - * @return the body of the 'else' part. - */ - @Nullable - PyStatementList getStatementList(); } diff --git a/python/psi-api/src/com/jetbrains/python/psi/PyStatementPart.java b/python/psi-api/src/com/jetbrains/python/psi/PyStatementPart.java index f491a6a83688..a14a91ef9f9c 100644 --- a/python/psi-api/src/com/jetbrains/python/psi/PyStatementPart.java +++ b/python/psi-api/src/com/jetbrains/python/psi/PyStatementPart.java @@ -15,19 +15,19 @@ */ package com.jetbrains.python.psi; -import org.jetbrains.annotations.Nullable; +import org.jetbrains.annotations.NotNull; /** * Abstract part of a multipart statement. * User: dcheryasov * Date: Mar 16, 2009 4:34:59 AM */ -public interface PyStatementPart extends PyElement { +public interface PyStatementPart extends PyElement, PyStatementListContainer { PyStatementPart[] EMPTY_ARRAY = new PyStatementPart[0]; /** * @return the body of the part. */ - @Nullable + @NotNull PyStatementList getStatementList(); } diff --git a/python/src/com/jetbrains/python/codeInsight/editorActions/smartEnter/enterProcessors/PyPlainEnterProcessor.java b/python/src/com/jetbrains/python/codeInsight/editorActions/smartEnter/enterProcessors/PyPlainEnterProcessor.java index fe2824f54269..ccdcf1b93f2a 100644 --- a/python/src/com/jetbrains/python/codeInsight/editorActions/smartEnter/enterProcessors/PyPlainEnterProcessor.java +++ b/python/src/com/jetbrains/python/codeInsight/editorActions/smartEnter/enterProcessors/PyPlainEnterProcessor.java @@ -20,7 +20,9 @@ import com.intellij.openapi.editor.Editor; import com.intellij.psi.PsiElement; import com.intellij.psi.util.PsiTreeUtil; import com.jetbrains.python.codeInsight.editorActions.smartEnter.SmartEnterUtil; -import com.jetbrains.python.psi.*; +import com.jetbrains.python.psi.PyStatementList; +import com.jetbrains.python.psi.PyStatementListContainer; +import com.jetbrains.python.psi.PyStatementPart; import org.jetbrains.annotations.Nullable; /** @@ -32,10 +34,7 @@ import org.jetbrains.annotations.Nullable; public class PyPlainEnterProcessor implements EnterProcessor { @Nullable private static PyStatementList getStatementList(PsiElement psiElement, Editor editor) { - if (psiElement instanceof PyStatementPart) { - return ((PyStatementPart)psiElement).getStatementList(); - } - else if (psiElement instanceof PyStatementListContainer) { + if (psiElement instanceof PyStatementListContainer) { return ((PyStatementListContainer)psiElement).getStatementList(); } else { diff --git a/python/src/com/jetbrains/python/psi/impl/PyElsePartImpl.java b/python/src/com/jetbrains/python/psi/impl/PyElsePartImpl.java index ddd02d5310a3..8c69893c62a8 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyElsePartImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyElsePartImpl.java @@ -15,26 +15,16 @@ */ package com.jetbrains.python.psi.impl; -import com.jetbrains.python.psi.PyElsePart; -import com.jetbrains.python.psi.PyStatementList; -import com.jetbrains.python.PyElementTypes; import com.intellij.lang.ASTNode; +import com.jetbrains.python.psi.PyElsePart; /** * User: dcheryasov * Date: Mar 15, 2009 9:40:35 PM */ -public class PyElsePartImpl extends PyElementImpl implements PyElsePart { +public class PyElsePartImpl extends PyStatementPartImpl implements PyElsePart { public PyElsePartImpl(ASTNode astNode) { super(astNode); } - - public PyStatementList getStatementList() { - ASTNode n = getNode().findChildByType(PyElementTypes.STATEMENT_LISTS); - if (n != null) { - return (PyStatementList)n.getPsi(); - } - return null; - } } diff --git a/python/src/com/jetbrains/python/psi/impl/PyStatementPartImpl.java b/python/src/com/jetbrains/python/psi/impl/PyStatementPartImpl.java index 46e9a785a9d4..7454d6741382 100644 --- a/python/src/com/jetbrains/python/psi/impl/PyStatementPartImpl.java +++ b/python/src/com/jetbrains/python/psi/impl/PyStatementPartImpl.java @@ -15,10 +15,11 @@ */ package com.jetbrains.python.psi.impl; -import com.jetbrains.python.psi.PyStatementPart; -import com.jetbrains.python.psi.PyStatementList; -import com.jetbrains.python.PyElementTypes; import com.intellij.lang.ASTNode; +import com.jetbrains.python.PyElementTypes; +import com.jetbrains.python.psi.PyStatementList; +import com.jetbrains.python.psi.PyStatementPart; +import org.jetbrains.annotations.NotNull; /** * Abstract statement part implementation; extracts the statements list. @@ -30,11 +31,8 @@ public abstract class PyStatementPartImpl extends PyElementImpl implements PySta super(astNode); } + @NotNull public PyStatementList getStatementList() { - ASTNode n = getNode().findChildByType(PyElementTypes.STATEMENT_LISTS); - if (n != null) { - return (PyStatementList)n.getPsi(); - } - return null; + return childToPsiNotNull(PyElementTypes.STATEMENT_LIST); } }