Make JetSimpleNameExpression a trait
This commit is contained in:
@@ -18,4 +18,4 @@ package org.jetbrains.jet.lang.psi
|
|||||||
|
|
||||||
import com.intellij.lang.ASTNode
|
import com.intellij.lang.ASTNode
|
||||||
|
|
||||||
public class JetLabelReferenceExpression(node: ASTNode) : JetSimpleNameExpression(node)
|
public class JetLabelReferenceExpression(node: ASTNode) : JetSimpleNameExpressionImpl(node)
|
||||||
|
|||||||
@@ -18,4 +18,4 @@ package org.jetbrains.jet.lang.psi
|
|||||||
|
|
||||||
import com.intellij.lang.ASTNode
|
import com.intellij.lang.ASTNode
|
||||||
|
|
||||||
public class JetNameReferenceExpression(node: ASTNode) : JetSimpleNameExpression(node)
|
public class JetNameReferenceExpression(node: ASTNode) : JetSimpleNameExpressionImpl(node)
|
||||||
@@ -18,4 +18,4 @@ package org.jetbrains.jet.lang.psi
|
|||||||
|
|
||||||
import com.intellij.lang.ASTNode
|
import com.intellij.lang.ASTNode
|
||||||
|
|
||||||
public class JetOperationReferenceExpression(node: ASTNode) : JetSimpleNameExpression(node)
|
public class JetOperationReferenceExpression(node: ASTNode) : JetSimpleNameExpressionImpl(node)
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ import org.jetbrains.jet.lexer.JetTokens
|
|||||||
import org.jetbrains.jet.lexer.JetTokens.*
|
import org.jetbrains.jet.lexer.JetTokens.*
|
||||||
import org.jetbrains.jet.lang.types.expressions.OperatorConventions
|
import org.jetbrains.jet.lang.types.expressions.OperatorConventions
|
||||||
|
|
||||||
public abstract class JetSimpleNameExpression(node: ASTNode) : JetExpressionImpl(node), JetReferenceExpression {
|
public trait JetSimpleNameExpression : JetReferenceExpression {
|
||||||
|
|
||||||
public fun getReceiverExpression(): JetExpression? {
|
public fun getReceiverExpression(): JetExpression? {
|
||||||
val parent = getParent()
|
val parent = getParent()
|
||||||
@@ -86,24 +86,30 @@ public abstract class JetSimpleNameExpression(node: ASTNode) : JetExpressionImpl
|
|||||||
return Name.identifierNoValidate(name)
|
return Name.identifierNoValidate(name)
|
||||||
}
|
}
|
||||||
|
|
||||||
public fun getReferencedNameElement(): PsiElement {
|
public fun getReferencedNameElement(): PsiElement
|
||||||
return findChildByType(REFERENCE_TOKENS) ?:
|
|
||||||
findChildByType(JetExpressionParsing.ALL_OPERATIONS) ?:
|
|
||||||
this
|
|
||||||
}
|
|
||||||
|
|
||||||
public fun getIdentifier(): PsiElement? {
|
public fun getIdentifier(): PsiElement?
|
||||||
return findChildByType(JetTokens.IDENTIFIER)
|
|
||||||
}
|
|
||||||
|
|
||||||
public fun getReferencedNameElementType(): IElementType {
|
public fun getReferencedNameElementType(): IElementType {
|
||||||
return getReferencedNameElement().getNode()!!.getElementType()!!
|
return getReferencedNameElement().getNode()!!.getElementType()!!
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
abstract class JetSimpleNameExpressionImpl(node: ASTNode) : JetExpressionImpl(node), JetSimpleNameExpression {
|
||||||
|
public override fun getIdentifier(): PsiElement? {
|
||||||
|
return findChildByType(JetTokens.IDENTIFIER)
|
||||||
|
}
|
||||||
|
|
||||||
override fun <R, D> accept(visitor: JetVisitor<R, D>, data: D?): R {
|
override fun <R, D> accept(visitor: JetVisitor<R, D>, data: D?): R {
|
||||||
return visitor.visitSimpleNameExpression(this, data) as R
|
return visitor.visitSimpleNameExpression(this, data) as R
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public override fun getReferencedNameElement(): PsiElement {
|
||||||
|
return findChildByType(REFERENCE_TOKENS) ?:
|
||||||
|
findChildByType(JetExpressionParsing.ALL_OPERATIONS) ?:
|
||||||
|
this
|
||||||
|
}
|
||||||
|
|
||||||
class object {
|
class object {
|
||||||
public val REFERENCE_TOKENS: TokenSet = TokenSet.create(LABEL_IDENTIFIER, IDENTIFIER, FIELD_IDENTIFIER, THIS_KEYWORD, SUPER_KEYWORD)
|
public val REFERENCE_TOKENS: TokenSet = TokenSet.create(LABEL_IDENTIFIER, IDENTIFIER, FIELD_IDENTIFIER, THIS_KEYWORD, SUPER_KEYWORD)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user