Make JetReferenceExpression an interface

This commit is contained in:
Pavel V. Talanov
2014-03-26 17:29:55 +04:00
parent 00eabde4ec
commit c2f28a16b4
7 changed files with 7 additions and 13 deletions
@@ -29,7 +29,7 @@ import org.jetbrains.jet.lexer.JetTokens;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
public class JetArrayAccessExpression extends JetReferenceExpression { public class JetArrayAccessExpression extends JetExpressionImpl implements JetReferenceExpression {
public JetArrayAccessExpression(@NotNull ASTNode node) { public JetArrayAccessExpression(@NotNull ASTNode node) {
super(node); super(node);
} }
@@ -27,7 +27,7 @@ import org.jetbrains.jet.lexer.JetTokens;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
public class JetCallExpression extends JetReferenceExpression implements JetCallElement { public class JetCallExpression extends JetExpressionImpl implements JetCallElement, JetReferenceExpression {
public JetCallExpression(@NotNull ASTNode node) { public JetCallExpression(@NotNull ASTNode node) {
super(node); super(node);
} }
@@ -29,7 +29,7 @@ import org.jetbrains.jet.lang.resolve.name.SpecialNames;
import java.util.Collections; import java.util.Collections;
import java.util.List; import java.util.List;
public class JetPackageDirective extends JetReferenceExpression { public class JetPackageDirective extends JetExpressionImpl implements JetReferenceExpression {
private String qualifiedNameCache = null; private String qualifiedNameCache = null;
public JetPackageDirective(@NotNull ASTNode node) { public JetPackageDirective(@NotNull ASTNode node) {
@@ -16,11 +16,5 @@
package org.jetbrains.jet.lang.psi; package org.jetbrains.jet.lang.psi;
import com.intellij.lang.ASTNode; public interface JetReferenceExpression extends JetExpression {
import org.jetbrains.annotations.NotNull;
public abstract class JetReferenceExpression extends JetExpressionImpl {
public JetReferenceExpression(@NotNull ASTNode node) {
super(node);
}
} }
@@ -29,7 +29,7 @@ import org.jetbrains.jet.lexer.JetTokens;
import static org.jetbrains.jet.lexer.JetTokens.*; import static org.jetbrains.jet.lexer.JetTokens.*;
public abstract class JetSimpleNameExpression extends JetReferenceExpression { public abstract class JetSimpleNameExpression extends JetExpressionImpl implements JetReferenceExpression {
public static final TokenSet REFERENCE_TOKENS = TokenSet.create(LABEL_IDENTIFIER, IDENTIFIER, FIELD_IDENTIFIER, THIS_KEYWORD, SUPER_KEYWORD); public static final TokenSet REFERENCE_TOKENS = TokenSet.create(LABEL_IDENTIFIER, IDENTIFIER, FIELD_IDENTIFIER, THIS_KEYWORD, SUPER_KEYWORD);
public JetSimpleNameExpression(@NotNull ASTNode node) { public JetSimpleNameExpression(@NotNull ASTNode node) {
@@ -19,7 +19,7 @@ package org.jetbrains.jet.lang.psi;
import com.intellij.lang.ASTNode; import com.intellij.lang.ASTNode;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
public class JetThisReferenceExpression extends JetReferenceExpression { public class JetThisReferenceExpression extends JetExpressionImpl implements JetReferenceExpression {
public JetThisReferenceExpression(@NotNull ASTNode node) { public JetThisReferenceExpression(@NotNull ASTNode node) {
super(node); super(node);
} }
@@ -215,7 +215,7 @@ public fun PsiElement.parameterIndex(): Int {
* ([[JetQualifiedExpression]] or [[JetUserType]] or original expression) * ([[JetQualifiedExpression]] or [[JetUserType]] or original expression)
*/ */
public fun JetSimpleNameExpression.getQualifiedElement(): JetElement { public fun JetSimpleNameExpression.getQualifiedElement(): JetElement {
val baseExpression = (getParent() as? JetCallExpression) ?: this val baseExpression: JetElement = (getParent() as? JetCallExpression) ?: this
val parent = baseExpression.getParent() val parent = baseExpression.getParent()
return when (parent) { return when (parent) {
is JetQualifiedExpression -> if (parent.getSelectorExpression().isAncestor(baseExpression)) parent else baseExpression is JetQualifiedExpression -> if (parent.getSelectorExpression().isAncestor(baseExpression)) parent else baseExpression