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.List;
public class JetArrayAccessExpression extends JetReferenceExpression {
public class JetArrayAccessExpression extends JetExpressionImpl implements JetReferenceExpression {
public JetArrayAccessExpression(@NotNull ASTNode node) {
super(node);
}
@@ -27,7 +27,7 @@ import org.jetbrains.jet.lexer.JetTokens;
import java.util.Collections;
import java.util.List;
public class JetCallExpression extends JetReferenceExpression implements JetCallElement {
public class JetCallExpression extends JetExpressionImpl implements JetCallElement, JetReferenceExpression {
public JetCallExpression(@NotNull ASTNode node) {
super(node);
}
@@ -29,7 +29,7 @@ import org.jetbrains.jet.lang.resolve.name.SpecialNames;
import java.util.Collections;
import java.util.List;
public class JetPackageDirective extends JetReferenceExpression {
public class JetPackageDirective extends JetExpressionImpl implements JetReferenceExpression {
private String qualifiedNameCache = null;
public JetPackageDirective(@NotNull ASTNode node) {
@@ -16,11 +16,5 @@
package org.jetbrains.jet.lang.psi;
import com.intellij.lang.ASTNode;
import org.jetbrains.annotations.NotNull;
public abstract class JetReferenceExpression extends JetExpressionImpl {
public JetReferenceExpression(@NotNull ASTNode node) {
super(node);
}
public interface JetReferenceExpression extends JetExpression {
}
@@ -29,7 +29,7 @@ import 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 JetSimpleNameExpression(@NotNull ASTNode node) {
@@ -19,7 +19,7 @@ package org.jetbrains.jet.lang.psi;
import com.intellij.lang.ASTNode;
import org.jetbrains.annotations.NotNull;
public class JetThisReferenceExpression extends JetReferenceExpression {
public class JetThisReferenceExpression extends JetExpressionImpl implements JetReferenceExpression {
public JetThisReferenceExpression(@NotNull ASTNode node) {
super(node);
}
@@ -215,7 +215,7 @@ public fun PsiElement.parameterIndex(): Int {
* ([[JetQualifiedExpression]] or [[JetUserType]] or original expression)
*/
public fun JetSimpleNameExpression.getQualifiedElement(): JetElement {
val baseExpression = (getParent() as? JetCallExpression) ?: this
val baseExpression: JetElement = (getParent() as? JetCallExpression) ?: this
val parent = baseExpression.getParent()
return when (parent) {
is JetQualifiedExpression -> if (parent.getSelectorExpression().isAncestor(baseExpression)) parent else baseExpression