Refactor: Store token in JetProjectionKind
This commit is contained in:
@@ -16,6 +16,22 @@
|
|||||||
|
|
||||||
package org.jetbrains.jet.lang.psi;
|
package org.jetbrains.jet.lang.psi;
|
||||||
|
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.jet.lexer.JetSingleValueToken;
|
||||||
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
|
|
||||||
public enum JetProjectionKind {
|
public enum JetProjectionKind {
|
||||||
IN, OUT, STAR, NONE;
|
IN(JetTokens.IN_KEYWORD), OUT(JetTokens.OUT_KEYWORD), STAR(JetTokens.MUL), NONE(null);
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
private final JetSingleValueToken token;
|
||||||
|
|
||||||
|
JetProjectionKind(@Nullable JetSingleValueToken token) {
|
||||||
|
this.token = token;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public JetSingleValueToken getToken() {
|
||||||
|
return token;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ package org.jetbrains.jet.lang.psi;
|
|||||||
|
|
||||||
import com.intellij.lang.ASTNode;
|
import com.intellij.lang.ASTNode;
|
||||||
import com.intellij.psi.PsiElement;
|
import com.intellij.psi.PsiElement;
|
||||||
|
import com.intellij.psi.tree.IElementType;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
import org.jetbrains.jet.lang.psi.stubs.PsiJetTypeProjectionStub;
|
import org.jetbrains.jet.lang.psi.stubs.PsiJetTypeProjectionStub;
|
||||||
@@ -42,12 +43,12 @@ public class JetTypeProjection extends JetModifierListOwnerStub<PsiJetTypeProjec
|
|||||||
}
|
}
|
||||||
|
|
||||||
ASTNode projectionNode = getProjectionNode();
|
ASTNode projectionNode = getProjectionNode();
|
||||||
if (projectionNode == null) return JetProjectionKind.NONE;
|
IElementType token = projectionNode != null ? projectionNode.getElementType() : null;
|
||||||
|
for (JetProjectionKind projectionKind : JetProjectionKind.values()) {
|
||||||
if (projectionNode.getElementType() == JetTokens.IN_KEYWORD) return JetProjectionKind.IN;
|
if (projectionKind.getToken() == token) {
|
||||||
if (projectionNode.getElementType() == JetTokens.OUT_KEYWORD) return JetProjectionKind.OUT;
|
return projectionKind;
|
||||||
if (projectionNode.getElementType() == JetTokens.MUL) return JetProjectionKind.STAR;
|
}
|
||||||
|
}
|
||||||
throw new IllegalStateException(projectionNode.getText());
|
throw new IllegalStateException(projectionNode.getText());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user