move jet signature read/write utils into stdlib module
This commit is contained in:
committed by
Nikolay Krasko
parent
8136547c4c
commit
789e6f3fc6
@@ -1,10 +1,11 @@
|
|||||||
package org.jetbrains.jet.codegen;
|
package org.jetbrains.jet.codegen;
|
||||||
|
|
||||||
|
import jet.typeinfo.TypeInfoVariance;
|
||||||
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.resolve.java.signature.JetSignatureAdapter;
|
import jet.typeinfo.internal.signature.JetSignatureAdapter;
|
||||||
import org.jetbrains.jet.lang.resolve.java.signature.JetSignatureReader;
|
import jet.typeinfo.internal.signature.JetSignatureReader;
|
||||||
import org.jetbrains.jet.lang.resolve.java.signature.JetSignatureWriter;
|
import jet.typeinfo.internal.signature.JetSignatureWriter;
|
||||||
import org.jetbrains.jet.lang.types.Variance;
|
import org.jetbrains.jet.lang.types.Variance;
|
||||||
import org.objectweb.asm.Type;
|
import org.objectweb.asm.Type;
|
||||||
import org.objectweb.asm.signature.SignatureVisitor;
|
import org.objectweb.asm.signature.SignatureVisitor;
|
||||||
@@ -183,11 +184,20 @@ public class BothSignatureWriter {
|
|||||||
jetSignatureWriter.visitTypeVariable(name, nullable);
|
jetSignatureWriter.visitTypeVariable(name, nullable);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private TypeInfoVariance translateVariance(Variance variance) {
|
||||||
|
switch (variance) {
|
||||||
|
case IN_VARIANCE: return TypeInfoVariance.IN;
|
||||||
|
case OUT_VARIANCE: return TypeInfoVariance.OUT;
|
||||||
|
case INVARIANT: return TypeInfoVariance.INVARIANT;
|
||||||
|
default: throw new IllegalStateException();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void writeFormalTypeParameter(final String name, Variance variance) {
|
public void writeFormalTypeParameter(final String name, Variance variance) {
|
||||||
checkTopLevel();
|
checkTopLevel();
|
||||||
|
|
||||||
signatureVisitor().visitFormalTypeParameter(name);
|
signatureVisitor().visitFormalTypeParameter(name);
|
||||||
jetSignatureWriter.visitFormalTypeParameter(name, variance);
|
jetSignatureWriter.visitFormalTypeParameter(name, translateVariance(variance));
|
||||||
}
|
}
|
||||||
|
|
||||||
public void writerFormalTypeParametersStart() {
|
public void writerFormalTypeParametersStart() {
|
||||||
|
|||||||
+1
-2
@@ -2,12 +2,11 @@ package org.jetbrains.jet.lang.resolve.java;
|
|||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import com.intellij.psi.*;
|
import com.intellij.psi.*;
|
||||||
|
import jet.typeinfo.internal.signature.JetSignatureReader;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
import org.jetbrains.jet.lang.descriptors.TypeParameterDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.java.signature.JetSignatureReader;
|
|
||||||
import org.jetbrains.jet.lang.resolve.java.signature.JetSignatureVisitor;
|
|
||||||
import org.jetbrains.jet.lang.types.*;
|
import org.jetbrains.jet.lang.types.*;
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|||||||
+3
-4
@@ -1,11 +1,10 @@
|
|||||||
package org.jetbrains.jet.lang.resolve.java;
|
package org.jetbrains.jet.lang.resolve.java;
|
||||||
|
|
||||||
|
import jet.typeinfo.TypeInfoVariance;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
import org.jetbrains.jet.lang.descriptors.annotations.AnnotationDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.java.signature.JetSignatureReader;
|
import jet.typeinfo.internal.signature.JetSignatureVisitor;
|
||||||
import org.jetbrains.jet.lang.resolve.java.signature.JetSignatureVisitor;
|
|
||||||
import org.jetbrains.jet.lang.resolve.scopes.JetScope;
|
|
||||||
import org.jetbrains.jet.lang.types.ErrorUtils;
|
import org.jetbrains.jet.lang.types.ErrorUtils;
|
||||||
import org.jetbrains.jet.lang.types.JetStandardClasses;
|
import org.jetbrains.jet.lang.types.JetStandardClasses;
|
||||||
import org.jetbrains.jet.lang.types.JetStandardLibrary;
|
import org.jetbrains.jet.lang.types.JetStandardLibrary;
|
||||||
@@ -34,7 +33,7 @@ public abstract class JetTypeJetSignatureReader implements JetSignatureVisitor {
|
|||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visitFormalTypeParameter(String name, Variance variance) {
|
public void visitFormalTypeParameter(String name, TypeInfoVariance variance) {
|
||||||
throw new IllegalStateException();
|
throw new IllegalStateException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+3
-3
@@ -1,13 +1,13 @@
|
|||||||
package org.jetbrains.jet.lang.resolve.java.signature;
|
package jet.typeinfo.internal.signature;
|
||||||
|
|
||||||
import org.jetbrains.jet.lang.types.Variance;
|
import jet.typeinfo.TypeInfoVariance;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Stepan Koltsov
|
* @author Stepan Koltsov
|
||||||
*/
|
*/
|
||||||
public class JetSignatureAdapter implements JetSignatureVisitor {
|
public class JetSignatureAdapter implements JetSignatureVisitor {
|
||||||
@Override
|
@Override
|
||||||
public void visitFormalTypeParameter(String name, Variance variance) {
|
public void visitFormalTypeParameter(String name, TypeInfoVariance variance) {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
+6
-8
@@ -1,8 +1,6 @@
|
|||||||
package org.jetbrains.jet.lang.resolve.java.signature;
|
package jet.typeinfo.internal.signature;
|
||||||
|
|
||||||
import org.jetbrains.jet.lang.types.Variance;
|
import jet.typeinfo.TypeInfoVariance;
|
||||||
import org.objectweb.asm.signature.SignatureReader;
|
|
||||||
import org.objectweb.asm.signature.SignatureVisitor;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Stepan Koltsov
|
* @author Stepan Koltsov
|
||||||
@@ -27,15 +25,15 @@ public class JetSignatureReader {
|
|||||||
if (signature.charAt(0) == '<') {
|
if (signature.charAt(0) == '<') {
|
||||||
pos = 2;
|
pos = 2;
|
||||||
do {
|
do {
|
||||||
Variance variance;
|
TypeInfoVariance variance;
|
||||||
if (signature.substring(pos).startsWith("in ")) {
|
if (signature.substring(pos).startsWith("in ")) {
|
||||||
variance = Variance.IN_VARIANCE;
|
variance = TypeInfoVariance.IN;
|
||||||
pos += "in ".length();
|
pos += "in ".length();
|
||||||
} else if (signature.substring(pos).startsWith("out ")) {
|
} else if (signature.substring(pos).startsWith("out ")) {
|
||||||
variance = Variance.OUT_VARIANCE;
|
variance = TypeInfoVariance.OUT;
|
||||||
pos += "out ".length();
|
pos += "out ".length();
|
||||||
} else {
|
} else {
|
||||||
variance = Variance.INVARIANT;
|
variance = TypeInfoVariance.INVARIANT;
|
||||||
pos += "".length();
|
pos += "".length();
|
||||||
}
|
}
|
||||||
int end = signature.indexOf(':', pos);
|
int end = signature.indexOf(':', pos);
|
||||||
+3
-4
@@ -1,7 +1,6 @@
|
|||||||
package org.jetbrains.jet.lang.resolve.java.signature;
|
package jet.typeinfo.internal.signature;
|
||||||
|
|
||||||
import org.jetbrains.jet.lang.types.Variance;
|
import jet.typeinfo.TypeInfoVariance;
|
||||||
import org.objectweb.asm.signature.SignatureVisitor;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Stepan Koltsov
|
* @author Stepan Koltsov
|
||||||
@@ -31,7 +30,7 @@ public interface JetSignatureVisitor {
|
|||||||
*
|
*
|
||||||
* @param name the name of the formal parameter.
|
* @param name the name of the formal parameter.
|
||||||
*/
|
*/
|
||||||
void visitFormalTypeParameter(String name, Variance variance);
|
void visitFormalTypeParameter(String name, TypeInfoVariance variance);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Visits the class bound of the last visited formal type parameter.
|
* Visits the class bound of the last visited formal type parameter.
|
||||||
+5
-6
@@ -1,7 +1,6 @@
|
|||||||
package org.jetbrains.jet.lang.resolve.java.signature;
|
package jet.typeinfo.internal.signature;
|
||||||
|
|
||||||
import org.jetbrains.jet.lang.types.Variance;
|
import jet.typeinfo.TypeInfoVariance;
|
||||||
import org.objectweb.asm.signature.SignatureWriter;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Stepan Koltsov
|
* @author Stepan Koltsov
|
||||||
@@ -44,16 +43,16 @@ public class JetSignatureWriter implements JetSignatureVisitor {
|
|||||||
// ------------------------------------------------------------------------
|
// ------------------------------------------------------------------------
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void visitFormalTypeParameter(final String name, Variance variance) {
|
public void visitFormalTypeParameter(final String name, TypeInfoVariance variance) {
|
||||||
if (!hasFormals) {
|
if (!hasFormals) {
|
||||||
hasFormals = true;
|
hasFormals = true;
|
||||||
buf.append('<');
|
buf.append('<');
|
||||||
}
|
}
|
||||||
switch (variance) {
|
switch (variance) {
|
||||||
case OUT_VARIANCE:
|
case OUT:
|
||||||
buf.append("out ");
|
buf.append("out ");
|
||||||
break;
|
break;
|
||||||
case IN_VARIANCE:
|
case IN:
|
||||||
buf.append("in ");
|
buf.append("in ");
|
||||||
break;
|
break;
|
||||||
case INVARIANT:
|
case INVARIANT:
|
||||||
Reference in New Issue
Block a user