type parameter variance and bound
This commit is contained in:
@@ -2,6 +2,9 @@ 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;
|
||||||
|
import org.jetbrains.annotations.Nullable;
|
||||||
|
import org.jetbrains.jet.JetNodeTypes;
|
||||||
|
import org.jetbrains.jet.lexer.JetTokens;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author max
|
* @author max
|
||||||
@@ -15,4 +18,19 @@ public class JetTypeParameter extends JetNamedDeclaration {
|
|||||||
public void accept(JetVisitor visitor) {
|
public void accept(JetVisitor visitor) {
|
||||||
visitor.visitTypeParameter(this);
|
visitor.visitTypeParameter(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@NotNull
|
||||||
|
public Variance getVariance() {
|
||||||
|
JetModifierList modifierList = getModifierList();
|
||||||
|
if (modifierList == null) return Variance.INVARIANT;
|
||||||
|
|
||||||
|
if (modifierList.hasModifier(JetTokens.OUT_KEYWORD)) return Variance.OUT_VARIANCE;
|
||||||
|
if (modifierList.hasModifier(JetTokens.IN_KEYWORD)) return Variance.IN_VARIANCE;
|
||||||
|
return Variance.INVARIANT;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public JetTypeReference getExtendsBound() {
|
||||||
|
return (JetTypeReference) findChildByType(JetNodeTypes.TYPE_REFERENCE);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,10 @@
|
|||||||
|
package org.jetbrains.jet.lang.psi;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author max
|
||||||
|
*/
|
||||||
|
public enum Variance {
|
||||||
|
INVARIANT,
|
||||||
|
IN_VARIANCE,
|
||||||
|
OUT_VARIANCE
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user