parse method in/out parameters

This commit is contained in:
Stepan Koltsov
2011-12-15 20:15:32 +04:00
committed by Nikolay Krasko
parent 08647b4ae7
commit a8640c1ec4
6 changed files with 46 additions and 18 deletions
@@ -551,7 +551,7 @@ public class JavaDescriptorResolver {
final List<TypeParameterDescriptor> r = new ArrayList<TypeParameterDescriptor>();
new JetSignatureReader(jetSignature).acceptFormalTypeParametersOnly(new JetSignatureExceptionsAdapter() {
@Override
public JetSignatureVisitor visitFormalTypeParameter(final String name, TypeInfoVariance variance) {
public JetSignatureVisitor visitFormalTypeParameter(final String name, final TypeInfoVariance variance) {
return new JetSignatureExceptionsAdapter() {
int index = 0;
@@ -582,7 +582,7 @@ public class JavaDescriptorResolver {
functionDescriptor,
Collections.<AnnotationDescriptor>emptyList(), // TODO: wrong
true, // TODO: wrong
Variance.INVARIANT, // TOOD: wrong
JetSignatureUtils.translateVariance(variance),
name,
++index);
r.add(typeParameter);
@@ -0,0 +1,28 @@
package org.jetbrains.jet.lang.resolve.java;
import jet.typeinfo.TypeInfoVariance;
import org.jetbrains.jet.lang.types.Variance;
/**
* @author Stepan Koltsov
*/
public class JetSignatureUtils {
static {
if (Variance.INVARIANT.ordinal() != TypeInfoVariance.INVARIANT.ordinal())
throw new IllegalStateException();
if (Variance.IN_VARIANCE.ordinal() != TypeInfoVariance.IN.ordinal())
throw new IllegalStateException();
if (Variance.OUT_VARIANCE.ordinal() != TypeInfoVariance.OUT.ordinal())
throw new IllegalStateException();
}
public static TypeInfoVariance translateVariance(Variance variance) {
return TypeInfoVariance.values()[variance.ordinal()];
}
public static Variance translateVariance(TypeInfoVariance variance) {
return Variance.values()[variance.ordinal()];
}
}