ReadKotlinBinaryClassTest: List<*>

This commit is contained in:
Stepan Koltsov
2012-01-18 12:03:42 +04:00
parent 0229e725ab
commit 6ceb6816be
14 changed files with 95 additions and 29 deletions
@@ -12,6 +12,7 @@ import org.jetbrains.jet.lang.types.TypeProjection;
import org.jetbrains.jet.lang.types.TypeUtils;
import org.jetbrains.jet.lang.types.Variance;
import org.jetbrains.jet.rt.signature.JetSignatureExceptionsAdapter;
import org.jetbrains.jet.rt.signature.JetSignatureVariance;
import org.jetbrains.jet.rt.signature.JetSignatureVisitor;
import java.util.ArrayList;
@@ -108,22 +109,22 @@ public abstract class JetTypeJetSignatureReader extends JetSignatureExceptionsAd
this.typeArguments = new ArrayList<TypeProjection>();
}
private static Variance parseVariance(char wildcard) {
switch (wildcard) {
case '=': return Variance.INVARIANT;
case '+': return Variance.OUT_VARIANCE;
case '-': return Variance.IN_VARIANCE;
private static Variance parseVariance(JetSignatureVariance variance) {
switch (variance) {
case INVARIANT: return Variance.INVARIANT;
case OUT: return Variance.OUT_VARIANCE;
case IN: return Variance.IN_VARIANCE;
default: throw new IllegalStateException();
}
}
@Override
public JetSignatureVisitor visitTypeArgument(final char wildcard) {
public JetSignatureVisitor visitTypeArgument(final JetSignatureVariance variance) {
return new JetTypeJetSignatureReader(javaSemanticServices, jetStandardLibrary, typeVariableResolver) {
@Override
protected void done(@NotNull JetType jetType) {
typeArguments.add(new TypeProjection(parseVariance(wildcard), jetType));
typeArguments.add(new TypeProjection(parseVariance(variance), jetType));
}
};
}